{
    "success": true,
    "data": {
        "route": {
            "origin": {
                "iata": "OPO",
                "name": "Porto",
                "country_code": "PT",
                "country_name": "Portugal",
                "is_hub": false
            },
            "destination": {
                "iata": "BRU",
                "name": "Brussels",
                "country_code": "BE",
                "country_name": "Belgium",
                "is_hub": true
            },
            "slug": "opo-bru"
        },
        "parameters": {
            "agencies": [
                "Aviakassa",
                "Biletix",
                "Brussels Airlines",
                "City.Travel",
                "Clickavia",
                "Farera",
                "Kiwi.com",
                "Kupi.com",
                "Mytrip.com",
                "Trip.com",
                "Авиасейлс"
            ],
            "agencies_count": 11,
            "airlines": [
                "FR",
                "SN",
                "TP",
                "V7",
                "W4"
            ],
            "airlines_count": 5,
            "airports_arrival": 2,
            "airports_arrival_list": [
                "BRU",
                "CRL"
            ],
            "airports_departure": 1,
            "airports_departure_list": [
                "OPO"
            ],
            "avg_duration_min": 195,
            "avg_price": 101.25,
            "avg_transfers": 0.5,
            "cheapest_agency": "Kiwi.com",
            "cheapest_month": 12,
            "cheapest_weekday": 3,
            "departures_per_week": 3,
            "direct_airlines_list": [
                "FR",
                "SN"
            ],
            "direct_flights_count": 20,
            "direct_share": 52.63,
            "distance_km": 1468,
            "eco_score": 8.3,
            "flight_time_min": 134,
            "flights_found": 38,
            "has_direct": true,
            "max_duration_min": 450,
            "max_price": 189,
            "min_duration_min": 140,
            "min_price": 38,
            "min_price_1stop": 65,
            "min_price_direct": 38,
            "months_with_flights": [
                10,
                11,
                12
            ],
            "popularity_score": 1.9,
            "seasonality": 1,
            "time_diff_hours": 1
        },
        "calendar": [
            {
                "date": "2026-11-15",
                "price_usd": 72,
                "transfers": 0,
                "airline": "TP",
                "gate": "Farera",
                "duration_min": 235
            },
            {
                "date": "2026-11-16",
                "price_usd": 79,
                "transfers": 0,
                "airline": "W4",
                "gate": "Kiwi.com",
                "duration_min": 245
            },
            {
                "date": "2026-11-17",
                "price_usd": 72,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-18",
                "price_usd": 72,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-19",
                "price_usd": 72,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-20",
                "price_usd": 72,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-21",
                "price_usd": 72,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-22",
                "price_usd": 65,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 235
            },
            {
                "date": "2026-11-23",
                "price_usd": 59,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-24",
                "price_usd": 59,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-25",
                "price_usd": 59,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-26",
                "price_usd": 52,
                "transfers": 0,
                "airline": "FR",
                "gate": "Авиасейлс",
                "duration_min": 145
            },
            {
                "date": "2026-11-27",
                "price_usd": 70,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 240
            },
            {
                "date": "2026-11-28",
                "price_usd": 89,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 240
            },
            {
                "date": "2026-11-29",
                "price_usd": 85,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 205
            },
            {
                "date": "2026-12-18",
                "price_usd": 38,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 145
            }
        ],
        "variants": [
            {
                "depart_date": "2026-12-18",
                "price_usd": 38,
                "airline": "FR",
                "flight_number": "1387",
                "departure_airport": "OPO",
                "arrival_airport": "CRL",
                "departure_time": "10:55:00",
                "arrival_time": "13:20:00",
                "duration_min": 145,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "09aab3803cddd846181439312fbd52ed"
            },
            {
                "depart_date": "2026-11-26",
                "price_usd": 52,
                "airline": "FR",
                "flight_number": "1387",
                "departure_airport": "OPO",
                "arrival_airport": "CRL",
                "departure_time": "09:35:00",
                "arrival_time": "12:00:00",
                "duration_min": 145,
                "transfers": 0,
                "gate": "Авиасейлс",
                "ticket_id": "d5c7908eb99721f3d90eadfa21b423b0"
            },
            {
                "depart_date": "2026-11-22",
                "price_usd": 65,
                "airline": "FR",
                "flight_number": "3259",
                "departure_airport": "OPO",
                "arrival_airport": "CRL",
                "departure_time": "22:30:00",
                "arrival_time": "02:25:00",
                "duration_min": 235,
                "transfers": 1,
                "gate": "Kiwi.com",
                "ticket_id": "6b7804a650e995ff226dccf6f130bd06"
            },
            {
                "depart_date": "2026-11-27",
                "price_usd": 70,
                "airline": "FR",
                "flight_number": "4017",
                "departure_airport": "OPO",
                "arrival_airport": "BRU",
                "departure_time": "19:50:00",
                "arrival_time": "23:50:00",
                "duration_min": 240,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "d689570bda04b704cc7da59915cf140f"
            },
            {
                "depart_date": "2026-11-15",
                "price_usd": 72,
                "airline": "TP",
                "flight_number": "1937",
                "departure_airport": "OPO",
                "arrival_airport": "BRU",
                "departure_time": "08:00:00",
                "arrival_time": "11:55:00",
                "duration_min": 235,
                "transfers": 1,
                "gate": "Farera",
                "ticket_id": "1df7fafd27d77d0f7e6d0644b89ab013"
            },
            {
                "depart_date": "2026-11-16",
                "price_usd": 79,
                "airline": "W4",
                "flight_number": "6336",
                "departure_airport": "OPO",
                "arrival_airport": "CRL",
                "departure_time": "22:55:00",
                "arrival_time": "03:00:00",
                "duration_min": 245,
                "transfers": 1,
                "gate": "Kiwi.com",
                "ticket_id": "e73b4881dbfb9874598c8ad41e1c6f5c"
            },
            {
                "depart_date": "2026-11-29",
                "price_usd": 85,
                "airline": "FR",
                "flight_number": "1989",
                "departure_airport": "OPO",
                "arrival_airport": "CRL",
                "departure_time": "09:45:00",
                "arrival_time": "13:10:00",
                "duration_min": 205,
                "transfers": 1,
                "gate": "Kiwi.com",
                "ticket_id": "841a675754ea2024e42ce523d2cef6ff"
            },
            {
                "depart_date": "2026-11-28",
                "price_usd": 89,
                "airline": "FR",
                "flight_number": "4017",
                "departure_airport": "OPO",
                "arrival_airport": "BRU",
                "departure_time": "18:30:00",
                "arrival_time": "22:30:00",
                "duration_min": 240,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "5e1f10c5bbf40b09c81b45cf3ca07ce6"
            },
            {
                "depart_date": "2026-11-28",
                "price_usd": 104,
                "airline": "FR",
                "flight_number": "1387",
                "departure_airport": "OPO",
                "arrival_airport": "CRL",
                "departure_time": "16:50:00",
                "arrival_time": "19:15:00",
                "duration_min": 145,
                "transfers": 0,
                "gate": "City.Travel",
                "ticket_id": "7b952b2c143bac6fb31b0fdfdf097b08"
            },
            {
                "depart_date": "2026-11-27",
                "price_usd": 106,
                "airline": "FR",
                "flight_number": "1387",
                "departure_airport": "OPO",
                "arrival_airport": "CRL",
                "departure_time": "10:55:00",
                "arrival_time": "13:20:00",
                "duration_min": 145,
                "transfers": 0,
                "gate": "Biletix",
                "ticket_id": "450d4f9593a73a22ce66236f1d1712ee"
            },
            {
                "depart_date": "2026-11-16",
                "price_usd": 121,
                "airline": "FR",
                "flight_number": "4867",
                "departure_airport": "OPO",
                "arrival_airport": "CRL",
                "departure_time": "10:05:00",
                "arrival_time": "12:30:00",
                "duration_min": 145,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "9983e3306e5d63efb649665c1c17e3a3"
            },
            {
                "depart_date": "2026-11-29",
                "price_usd": 125,
                "airline": "FR",
                "flight_number": "1387",
                "departure_airport": "OPO",
                "arrival_airport": "CRL",
                "departure_time": "20:05:00",
                "arrival_time": "22:30:00",
                "duration_min": 145,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "0a2403054fa1742422f4a2f7fe9133ec"
            },
            {
                "depart_date": "2026-11-22",
                "price_usd": 153,
                "airline": "SN",
                "flight_number": "3812",
                "departure_airport": "OPO",
                "arrival_airport": "BRU",
                "departure_time": "15:50:00",
                "arrival_time": "18:10:00",
                "duration_min": 140,
                "transfers": 0,
                "gate": "Mytrip.com",
                "ticket_id": "b4ab610314b3eb2ce3a96c59e2d8849b"
            },
            {
                "depart_date": "2026-11-15",
                "price_usd": 170,
                "airline": "FR",
                "flight_number": "1387",
                "departure_airport": "OPO",
                "arrival_airport": "CRL",
                "departure_time": "20:05:00",
                "arrival_time": "22:30:00",
                "duration_min": 145,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "94aa0ed2f3aa7e6bf370a0cb1e9f9b27"
            }
        ],
        "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": 38
            },
            {
                "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": 72
            },
            {
                "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": 79
            },
            {
                "iata": "SN",
                "name": "Brussels Airlines",
                "logo_url": "https://img.wway.io/pics/root/SN@png?exar=1&rs=fit:80:80",
                "is_lowcost": false,
                "routes_count": 200,
                "min_price_usd": 153
            },
            {
                "iata": "V7",
                "name": "Volotea",
                "logo_url": "https://img.wway.io/pics/root/V7@png?exar=1&rs=fit:80:80",
                "is_lowcost": true,
                "routes_count": 68,
                "min_price_usd": 153
            }
        ],
        "agencies": [
            {
                "name": "Kiwi.com",
                "min_price_usd": 38,
                "tickets_count": 19
            },
            {
                "name": "Авиасейлс",
                "min_price_usd": 52,
                "tickets_count": 3
            },
            {
                "name": "Clickavia",
                "min_price_usd": 70,
                "tickets_count": 5
            },
            {
                "name": "Farera",
                "min_price_usd": 72,
                "tickets_count": 2
            },
            {
                "name": "Trip.com",
                "min_price_usd": 93,
                "tickets_count": 1
            },
            {
                "name": "City.Travel",
                "min_price_usd": 104,
                "tickets_count": 3
            },
            {
                "name": "Biletix",
                "min_price_usd": 106,
                "tickets_count": 1
            },
            {
                "name": "Aviakassa",
                "min_price_usd": 128,
                "tickets_count": 1
            },
            {
                "name": "Kupi.com",
                "min_price_usd": 153,
                "tickets_count": 1
            },
            {
                "name": "Mytrip.com",
                "min_price_usd": 153,
                "tickets_count": 1
            },
            {
                "name": "Brussels Airlines",
                "min_price_usd": 165,
                "tickets_count": 1
            }
        ],
        "airports": {
            "departure": [
                {
                    "iata": "OPO",
                    "name": "Porto Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Lisbon"
                }
            ],
            "arrival": [
                {
                    "iata": "BRU",
                    "name": "Brussels Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Brussels"
                },
                {
                    "iata": "CRL",
                    "name": "Charleroi Brussels South Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Brussels"
                }
            ]
        },
        "html_url": "https://cityvator.com/en/opo-bru/",
        "api_urls": {
            "self": "https://cityvator.com/api/routes/opo-bru",
            "qa": "https://cityvator.com/api/qa/route/opo-bru",
            "compare": "https://cityvator.com/api/compare/opo-bru-vs-"
        },
        "updated_at": "2026-10-16 18:07:19"
    },
    "meta": {
        "lang": "en",
        "currency": "USD",
        "requested_at": "2026-11-15T14:29:13+03:00",
        "powered_by": "Cityvator",
        "source": "https://cityvator.com",
        "license": "CC-BY-4.0",
        "attribution": "Data source: Cityvator (https://cityvator.com)"
    }
}