{
    "success": true,
    "data": {
        "route": {
            "origin": {
                "iata": "FRA",
                "name": "Frankfurt",
                "country_code": "DE",
                "country_name": "Germany",
                "is_hub": true
            },
            "destination": {
                "iata": "OPO",
                "name": "Porto",
                "country_code": "PT",
                "country_name": "Portugal",
                "is_hub": false
            },
            "slug": "fra-opo"
        },
        "parameters": {
            "agencies": [
                "Clickavia",
                "Kiwi.com",
                "Kupi.com",
                "Lucky2Go",
                "Tickets",
                "Trip.com",
                "Turna.com",
                "Ubfly"
            ],
            "agencies_count": 8,
            "airlines": [
                "AL",
                "DE",
                "EC",
                "FR",
                "KL",
                "LH",
                "TP"
            ],
            "airlines_count": 7,
            "airports_arrival": 1,
            "airports_arrival_list": [
                "OPO"
            ],
            "airports_departure": 2,
            "airports_departure_list": [
                "FRA",
                "HHN"
            ],
            "avg_duration_min": 222,
            "avg_price": 96.7895,
            "avg_transfers": 0.57,
            "cheapest_agency": "Clickavia",
            "cheapest_month": 10,
            "cheapest_weekday": 6,
            "departures_per_week": 2,
            "direct_airlines_list": [
                "FR",
                "LH",
                "TP"
            ],
            "direct_flights_count": 12,
            "direct_share": 57.14,
            "distance_km": 1657,
            "eco_score": 8,
            "flight_time_min": 147,
            "flights_found": 21,
            "has_direct": true,
            "max_duration_min": 445,
            "max_price": 294,
            "min_duration_min": 165,
            "min_price": 33,
            "min_price_1stop": 67,
            "min_price_direct": 33,
            "months_with_flights": [
                10,
                11,
                12
            ],
            "popularity_score": 1.1,
            "seasonality": 1,
            "time_diff_hours": -1
        },
        "calendar": [
            {
                "date": "2026-12-02",
                "price_usd": 67,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 240
            },
            {
                "date": "2026-12-03",
                "price_usd": 95,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 445
            },
            {
                "date": "2026-12-04",
                "price_usd": 71,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-05",
                "price_usd": 71,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-06",
                "price_usd": 71,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-07",
                "price_usd": 71,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-08",
                "price_usd": 71,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-09",
                "price_usd": 71,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-10",
                "price_usd": 71,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-11",
                "price_usd": 46,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 165
            },
            {
                "date": "2026-12-12",
                "price_usd": 89,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-13",
                "price_usd": 89,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-14",
                "price_usd": 89,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-15",
                "price_usd": 89,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-16",
                "price_usd": 89,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-17",
                "price_usd": 89,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-18",
                "price_usd": 89,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-19",
                "price_usd": 89,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-20",
                "price_usd": 132,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 305
            },
            {
                "date": "2026-12-21",
                "price_usd": 134,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-22",
                "price_usd": 134,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-23",
                "price_usd": 136,
                "transfers": 0,
                "airline": "KL",
                "gate": "Lucky2Go",
                "duration_min": 235
            }
        ],
        "variants": [
            {
                "depart_date": "2026-12-11",
                "price_usd": 46,
                "airline": "FR",
                "flight_number": "4392",
                "departure_airport": "HHN",
                "arrival_airport": "OPO",
                "departure_time": "18:20:00",
                "arrival_time": "21:05:00",
                "duration_min": 165,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "3710880b9c3807e8fd2341275428e04d"
            },
            {
                "depart_date": "2026-12-02",
                "price_usd": 67,
                "airline": "FR",
                "flight_number": "1680",
                "departure_airport": "HHN",
                "arrival_airport": "OPO",
                "departure_time": "15:55:00",
                "arrival_time": "19:55:00",
                "duration_min": 240,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "2eb79f80dac4959adf7592a43f26b954"
            },
            {
                "depart_date": "2026-12-03",
                "price_usd": 95,
                "airline": "FR",
                "flight_number": "2793",
                "departure_airport": "HHN",
                "arrival_airport": "OPO",
                "departure_time": "08:10:00",
                "arrival_time": "15:35:00",
                "duration_min": 445,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "fb3a70aaa7ab99ada02546fa25590750"
            },
            {
                "depart_date": "2026-12-20",
                "price_usd": 132,
                "airline": "FR",
                "flight_number": "369",
                "departure_airport": "HHN",
                "arrival_airport": "OPO",
                "departure_time": "10:20:00",
                "arrival_time": "15:25:00",
                "duration_min": 305,
                "transfers": 2,
                "gate": "Kiwi.com",
                "ticket_id": "987300d8ae91108d84464266d87e6f3b"
            },
            {
                "depart_date": "2026-12-23",
                "price_usd": 136,
                "airline": "KL",
                "flight_number": "1822",
                "departure_airport": "FRA",
                "arrival_airport": "OPO",
                "departure_time": "20:35:00",
                "arrival_time": "00:30:00",
                "duration_min": 235,
                "transfers": 1,
                "gate": "Lucky2Go",
                "ticket_id": "ffc413b419b07baf58d6678b2864c399"
            },
            {
                "depart_date": "2026-12-20",
                "price_usd": 224,
                "airline": "FR",
                "flight_number": "4392",
                "departure_airport": "HHN",
                "arrival_airport": "OPO",
                "departure_time": "13:20:00",
                "arrival_time": "16:05:00",
                "duration_min": 165,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "83bcfeea6c250a020212f4f80fe78da2"
            },
            {
                "depart_date": "2026-12-02",
                "price_usd": 259,
                "airline": "LH",
                "flight_number": "1178",
                "departure_airport": "FRA",
                "arrival_airport": "OPO",
                "departure_time": "22:35:00",
                "arrival_time": "01:25:00",
                "duration_min": 170,
                "transfers": 0,
                "gate": "Trip.com",
                "ticket_id": "8a037d30025bd7e7bf1e12541d93b97f"
            },
            {
                "depart_date": "2026-12-03",
                "price_usd": 261,
                "airline": "LH",
                "flight_number": "1174",
                "departure_airport": "FRA",
                "arrival_airport": "OPO",
                "departure_time": "11:55:00",
                "arrival_time": "14:45:00",
                "duration_min": 170,
                "transfers": 0,
                "gate": "Trip.com",
                "ticket_id": "c157a955b71593b56fd792af62587b61"
            },
            {
                "depart_date": "2026-12-23",
                "price_usd": 334,
                "airline": "LH",
                "flight_number": "1176",
                "departure_airport": "FRA",
                "arrival_airport": "OPO",
                "departure_time": "15:20:00",
                "arrival_time": "18:10:00",
                "duration_min": 170,
                "transfers": 0,
                "gate": "Ubfly",
                "ticket_id": "1287b3622a0a628f6a901b97b6714e53"
            }
        ],
        "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": 33
            },
            {
                "iata": "AL",
                "name": "ALPAVIA",
                "logo_url": "https://img.wway.io/pics/root/AL@png?exar=1&rs=fit:80:80",
                "is_lowcost": false,
                "routes_count": 0,
                "min_price_usd": 82
            },
            {
                "iata": "EC",
                "name": "easyJet",
                "logo_url": "https://img.wway.io/pics/root/EC@png?exar=1&rs=fit:80:80",
                "is_lowcost": true,
                "routes_count": 2,
                "min_price_usd": 102
            },
            {
                "iata": "KL",
                "name": "KLM",
                "logo_url": "https://img.wway.io/pics/root/KL@png?exar=1&rs=fit:80:80",
                "is_lowcost": false,
                "routes_count": 632,
                "min_price_usd": 136
            },
            {
                "iata": "DE",
                "name": "Condor",
                "logo_url": "https://img.wway.io/pics/root/DE@png?exar=1&rs=fit:80:80",
                "is_lowcost": false,
                "routes_count": 334,
                "min_price_usd": 184
            },
            {
                "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": 245
            },
            {
                "iata": "LH",
                "name": "Lufthansa",
                "logo_url": "https://img.wway.io/pics/root/LH@png?exar=1&rs=fit:80:80",
                "is_lowcost": false,
                "routes_count": 1083,
                "min_price_usd": 259
            }
        ],
        "agencies": [
            {
                "name": "Clickavia",
                "min_price_usd": 33,
                "tickets_count": 3
            },
            {
                "name": "Kiwi.com",
                "min_price_usd": 46,
                "tickets_count": 6
            },
            {
                "name": "Tickets",
                "min_price_usd": 87,
                "tickets_count": 2
            },
            {
                "name": "Kupi.com",
                "min_price_usd": 102,
                "tickets_count": 1
            },
            {
                "name": "Lucky2Go",
                "min_price_usd": 136,
                "tickets_count": 1
            },
            {
                "name": "Turna.com",
                "min_price_usd": 245,
                "tickets_count": 1
            },
            {
                "name": "Trip.com",
                "min_price_usd": 259,
                "tickets_count": 3
            },
            {
                "name": "Ubfly",
                "min_price_usd": 262,
                "tickets_count": 4
            }
        ],
        "airports": {
            "departure": [
                {
                    "iata": "FRA",
                    "name": "Frankfurt Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Berlin"
                },
                {
                    "iata": "HHN",
                    "name": "Frankfurt - Hahn Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Berlin"
                }
            ],
            "arrival": [
                {
                    "iata": "OPO",
                    "name": "Porto Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Lisbon"
                }
            ]
        },
        "html_url": "https://cityvator.com/en/fra-opo/",
        "api_urls": {
            "self": "https://cityvator.com/api/routes/fra-opo",
            "qa": "https://cityvator.com/api/qa/route/fra-opo",
            "compare": "https://cityvator.com/api/compare/fra-opo-vs-"
        },
        "updated_at": "2026-10-15 21:09:26"
    },
    "meta": {
        "lang": "en",
        "currency": "USD",
        "requested_at": "2026-11-15T15:18:15+03:00",
        "powered_by": "Cityvator",
        "source": "https://cityvator.com",
        "license": "CC-BY-4.0",
        "attribution": "Data source: Cityvator (https://cityvator.com)"
    }
}