{
    "success": true,
    "data": {
        "route": {
            "origin": {
                "iata": "MAD",
                "name": "Madrid",
                "country_code": "ES",
                "country_name": "Spain",
                "is_hub": true
            },
            "destination": {
                "iata": "OPO",
                "name": "Porto",
                "country_code": "PT",
                "country_name": "Portugal",
                "is_hub": false
            },
            "slug": "mad-opo"
        },
        "parameters": {
            "agencies": [
                "Biletix",
                "Clickavia",
                "Farera",
                "Kiwi.com",
                "Tickets",
                "Trip.com",
                "Авиасейлс"
            ],
            "agencies_count": 7,
            "airlines": [
                "FR",
                "IB",
                "TP",
                "UX",
                "X5"
            ],
            "airlines_count": 5,
            "airports_arrival": 1,
            "airports_arrival_list": [
                "OPO"
            ],
            "airports_departure": 1,
            "airports_departure_list": [
                "MAD"
            ],
            "avg_duration_min": 87,
            "avg_price": 33.7465,
            "avg_transfers": 0.13,
            "cheapest_agency": "Clickavia",
            "cheapest_month": 11,
            "cheapest_weekday": 3,
            "departures_per_week": 4,
            "direct_airlines_list": [
                "FR",
                "IB",
                "UX",
                "X5"
            ],
            "direct_flights_count": 40,
            "direct_share": 86.96,
            "distance_km": 423,
            "eco_score": 9.5,
            "flight_time_min": 60,
            "flights_found": 46,
            "has_direct": true,
            "max_duration_min": 145,
            "max_price": 58,
            "min_duration_min": 75,
            "min_price": 18,
            "min_price_1stop": 45,
            "min_price_direct": 18,
            "months_with_flights": [
                10,
                11,
                12
            ],
            "popularity_score": 2.3,
            "seasonality": 1,
            "time_diff_hours": -1
        },
        "calendar": [
            {
                "date": "2026-11-15",
                "price_usd": 28,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-16",
                "price_usd": 25,
                "transfers": 0,
                "airline": null,
                "gate": "Clickavia",
                "duration_min": 0
            },
            {
                "date": "2026-11-17",
                "price_usd": 25,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 80
            },
            {
                "date": "2026-11-18",
                "price_usd": 28,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 80
            },
            {
                "date": "2026-11-19",
                "price_usd": 36,
                "transfers": 0,
                "airline": null,
                "gate": "Clickavia",
                "duration_min": 0
            },
            {
                "date": "2026-11-20",
                "price_usd": 36,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 80
            },
            {
                "date": "2026-11-21",
                "price_usd": 21,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 80
            },
            {
                "date": "2026-11-22",
                "price_usd": 34,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 80
            },
            {
                "date": "2026-11-23",
                "price_usd": 27,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-24",
                "price_usd": 19,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 80
            },
            {
                "date": "2026-11-25",
                "price_usd": 23,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-26",
                "price_usd": 26,
                "transfers": 0,
                "airline": null,
                "gate": "Kiwi.com",
                "duration_min": 0
            },
            {
                "date": "2026-11-27",
                "price_usd": 25,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 80
            },
            {
                "date": "2026-11-28",
                "price_usd": 22,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 80
            },
            {
                "date": "2026-12-01",
                "price_usd": 34,
                "transfers": 0,
                "airline": "UX",
                "gate": "Kiwi.com",
                "duration_min": 75
            },
            {
                "date": "2026-12-02",
                "price_usd": 33,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-03",
                "price_usd": 33,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-04",
                "price_usd": 33,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-05",
                "price_usd": 33,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-06",
                "price_usd": 31,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 80
            },
            {
                "date": "2026-12-07",
                "price_usd": 29,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-08",
                "price_usd": 29,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-09",
                "price_usd": 29,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-10",
                "price_usd": 29,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-11",
                "price_usd": 29,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-12",
                "price_usd": 27,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 80
            },
            {
                "date": "2026-12-13",
                "price_usd": 29,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-14",
                "price_usd": 29,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-15",
                "price_usd": 30,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 80
            },
            {
                "date": "2026-12-16",
                "price_usd": 33,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-17",
                "price_usd": 33,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-18",
                "price_usd": 33,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-19",
                "price_usd": 36,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 80
            },
            {
                "date": "2026-12-20",
                "price_usd": 40,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-21",
                "price_usd": 40,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-22",
                "price_usd": 45,
                "transfers": 0,
                "airline": "TP",
                "gate": "Trip.com",
                "duration_min": 145
            },
            {
                "date": "2026-12-23",
                "price_usd": 45,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-24",
                "price_usd": 45,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-25",
                "price_usd": 45,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-26",
                "price_usd": 45,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 80
            },
            {
                "date": "2026-12-27",
                "price_usd": 33,
                "transfers": 0,
                "airline": null,
                "gate": "Kiwi.com",
                "duration_min": 0
            },
            {
                "date": "2026-12-28",
                "price_usd": 33,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 80
            }
        ],
        "variants": [
            {
                "depart_date": "2026-11-24",
                "price_usd": 19,
                "airline": "FR",
                "flight_number": "572",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "11:20:00",
                "arrival_time": "12:40:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "9acf96ce22ab49bfa40b0804e3b361d1"
            },
            {
                "depart_date": "2026-11-21",
                "price_usd": 21,
                "airline": "FR",
                "flight_number": "5484",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "23:40:00",
                "arrival_time": "01:00:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "f8707235a98bbc45eae37a7e2e34cf68"
            },
            {
                "depart_date": "2026-11-28",
                "price_usd": 22,
                "airline": "FR",
                "flight_number": "5484",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "23:40:00",
                "arrival_time": "01:00:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "b9c97a519720a5e671ac9a861c406032"
            },
            {
                "depart_date": "2026-11-17",
                "price_usd": 25,
                "airline": "FR",
                "flight_number": "5482",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "01:25:00",
                "arrival_time": "02:45:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "d41971bd19f056f155680d7309ea3a8f"
            },
            {
                "depart_date": "2026-11-27",
                "price_usd": 25,
                "airline": "FR",
                "flight_number": "5484",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "23:40:00",
                "arrival_time": "01:00:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "cbf142bafca76d27adff3a1a403f1fc0"
            },
            {
                "depart_date": "2026-11-27",
                "price_usd": 26,
                "airline": "FR",
                "flight_number": "572",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "00:40:00",
                "arrival_time": "02:00:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "3e3175c9627d0817bb988ba4289979e7"
            },
            {
                "depart_date": "2026-12-12",
                "price_usd": 27,
                "airline": "FR",
                "flight_number": "572",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "19:30:00",
                "arrival_time": "20:50:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "b4710e3fd1a2cc81cc4e35b795657eb4"
            },
            {
                "depart_date": "2026-11-18",
                "price_usd": 28,
                "airline": "FR",
                "flight_number": "572",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "11:15:00",
                "arrival_time": "12:35:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "7509f4b63ce19c7aa54e8370ed7e6071"
            },
            {
                "depart_date": "2026-12-15",
                "price_usd": 30,
                "airline": "FR",
                "flight_number": "572",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "11:20:00",
                "arrival_time": "12:40:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "5518eec0cdccffefe8d3f8c9cbcb9718"
            },
            {
                "depart_date": "2026-12-06",
                "price_usd": 31,
                "airline": "FR",
                "flight_number": "572",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "13:15:00",
                "arrival_time": "14:35:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "f9b21beacabe26fd56a01377bb8445af"
            },
            {
                "depart_date": "2026-12-28",
                "price_usd": 33,
                "airline": "FR",
                "flight_number": "5482",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "00:15:00",
                "arrival_time": "01:35:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "98d51771544209da0d06c5dc5bc8f99d"
            },
            {
                "depart_date": "2026-12-01",
                "price_usd": 34,
                "airline": "UX",
                "flight_number": "1147",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "08:30:00",
                "arrival_time": "09:45:00",
                "duration_min": 75,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "84612b650f7164d1bc57ea4e658bea06"
            },
            {
                "depart_date": "2026-11-22",
                "price_usd": 34,
                "airline": "FR",
                "flight_number": "572",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "13:15:00",
                "arrival_time": "14:35:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "19782054242fb22dca53676dcded8ad3"
            },
            {
                "depart_date": "2026-12-19",
                "price_usd": 36,
                "airline": "FR",
                "flight_number": "5484",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "23:40:00",
                "arrival_time": "01:00:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "882df64149c84a28f5978abb5a81d6ce"
            },
            {
                "depart_date": "2026-11-20",
                "price_usd": 36,
                "airline": "FR",
                "flight_number": "572",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "00:40:00",
                "arrival_time": "02:00:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "1b17cdf0d0c92a1b0492f27b7a2bb2cd"
            },
            {
                "depart_date": "2026-12-22",
                "price_usd": 45,
                "airline": "TP",
                "flight_number": "1017",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "20:00:00",
                "arrival_time": "22:25:00",
                "duration_min": 145,
                "transfers": 1,
                "gate": "Trip.com",
                "ticket_id": "a281eeb4c4543fda794b3f8f80f25ba6"
            },
            {
                "depart_date": "2026-12-26",
                "price_usd": 45,
                "airline": "FR",
                "flight_number": "5484",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "23:40:00",
                "arrival_time": "01:00:00",
                "duration_min": 80,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "dfa422049714b9a36a49d407999f4f32"
            },
            {
                "depart_date": "2026-12-22",
                "price_usd": 65,
                "airline": "UX",
                "flight_number": "1147",
                "departure_airport": "MAD",
                "arrival_airport": "OPO",
                "departure_time": "08:30:00",
                "arrival_time": "09:45:00",
                "duration_min": 75,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "eec1176440fd29826c9fc7f1a5437492"
            }
        ],
        "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": 18
            },
            {
                "iata": "IB",
                "name": "Iberia",
                "logo_url": "https://img.wway.io/pics/root/IB@png?exar=1&rs=fit:80:80",
                "is_lowcost": false,
                "routes_count": 635,
                "min_price_usd": 30
            },
            {
                "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": 34
            },
            {
                "iata": "X5",
                "name": "Air Europa Express",
                "logo_url": "https://img.wway.io/pics/root/X5@png?exar=1&rs=fit:80:80",
                "is_lowcost": false,
                "routes_count": 0,
                "min_price_usd": 37
            },
            {
                "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": 45
            }
        ],
        "agencies": [
            {
                "name": "Clickavia",
                "min_price_usd": 18,
                "tickets_count": 15
            },
            {
                "name": "Kiwi.com",
                "min_price_usd": 19,
                "tickets_count": 16
            },
            {
                "name": "Farera",
                "min_price_usd": 28,
                "tickets_count": 3
            },
            {
                "name": "Tickets",
                "min_price_usd": 30,
                "tickets_count": 2
            },
            {
                "name": "Trip.com",
                "min_price_usd": 37,
                "tickets_count": 8
            },
            {
                "name": "Biletix",
                "min_price_usd": 49,
                "tickets_count": 1
            },
            {
                "name": "Авиасейлс",
                "min_price_usd": 53,
                "tickets_count": 1
            }
        ],
        "airports": {
            "departure": [
                {
                    "iata": "MAD",
                    "name": "Adolfo Suarez Madrid-Barajas Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Madrid"
                }
            ],
            "arrival": [
                {
                    "iata": "OPO",
                    "name": "Porto Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Lisbon"
                }
            ]
        },
        "html_url": "https://cityvator.com/en/mad-opo/",
        "api_urls": {
            "self": "https://cityvator.com/api/routes/mad-opo",
            "qa": "https://cityvator.com/api/qa/route/mad-opo",
            "compare": "https://cityvator.com/api/compare/mad-opo-vs-"
        },
        "updated_at": "2026-10-15 21:42:05"
    },
    "meta": {
        "lang": "en",
        "currency": "USD",
        "requested_at": "2026-11-15T15:27:24+03:00",
        "powered_by": "Cityvator",
        "source": "https://cityvator.com",
        "license": "CC-BY-4.0",
        "attribution": "Data source: Cityvator (https://cityvator.com)"
    }
}