{
  "api_version": "1.0.0",
  "source": "InfoPax — European Port Intelligence Platform",
  "source_url": "https://www.infopax.fr",
  "contact": "press@infopax.eu",
  "last_updated": "2026-07-10",
  "data_year": 2024,
  "global_stats": {
    "total_european_ferry_passengers": "417.8 million",
    "ports_monitored": 47,
    "countries_covered": 14,
    "ferry_operators_tracked": 80,
    "total_pso_budget_eur": "2.5 billion",
    "languages": ["es", "en", "fr", "it", "pt"]
  },
  "top_10_routes_by_volume": [
    { "rank": 1, "route": "Messina–Villa San Giovanni", "country": "IT", "pax_millions": 11.4, "distance_km": 3, "duration_min": 20 },
    { "rank": 2, "route": "Piraeus–islands network", "country": "GR", "pax_millions": 17.05, "note": "coastal traffic total" },
    { "rank": 3, "route": "Dover–Calais", "country": "UK-FR", "pax_millions": 17.8, "distance_km": 56, "duration_min": 90 },
    { "rank": 4, "route": "Palma–Barcelona/Ibiza/Valencia", "country": "ES", "pax_millions": 9.4, "note": "5 Balearic ports combined" },
    { "rank": 5, "route": "Algeciras–Tánger Med", "country": "ES-MA", "pax_millions": 9.4, "distance_km": 14, "duration_min": 35 },
    { "rank": 6, "route": "Split–islands network", "country": "HR", "pax_millions": 6.02 },
    { "rank": 7, "route": "Naples–islands+mainland", "country": "IT", "pax_millions": 9.37 },
    { "rank": 8, "route": "Genova–Sicily/Sardinia/Tunis", "country": "IT", "pax_millions": 2.72 },
    { "rank": 9, "route": "Portsmouth–Normandy/Brittany", "country": "UK-FR", "pax_millions": 7.0, "note": "international + domestic" },
    { "rank": 10, "route": "Tenerife–Gran Canaria", "country": "ES", "pax_millions": 1.7, "distance_km": 70, "duration_h": 1.5 }
  ],
  "pso_contracts": [
    { "rank": 1, "name": "Greece PSO 2025-2029", "budget_eur_millions": 668, "annual_eur_millions": 167, "routes": 77, "period": "2025-2029", "notes": "50% port fee reduction for domestic lines from May 2025" },
    { "rank": 2, "name": "Corsica DSP 2023-2030", "budget_eur_millions": 853.6, "annual_eur_millions": 122, "routes": 5, "period": "2023-2030", "notes": "Approved by EU Commission 26/11/2024. 5 Corsican ports." },
    { "rank": 3, "name": "Spain Balearics+Canarias+Melilla", "budget_eur_millions": 227, "annual_eur_millions": 227, "routes": null, "period": "2023", "notes": "75% resident discount. 8.6M subsidized trips." },
    { "rank": 4, "name": "Norway Coastal PSO", "budget_eur_millions": 180, "annual_eur_millions": 180, "routes": 34, "period": "2024-2031", "notes": "Hurtigruten operates under this framework." },
    { "rank": 5, "name": "Italy Sardinia+Sicily", "budget_eur_millions": 72, "annual_eur_millions": 72, "routes": null, "period": "ongoing", "notes": "Tirrenia CIN. EU questioned historical compensation." },
    { "rank": 6, "name": "Croatia Dalmatian Islands", "budget_eur_millions": 45, "annual_eur_millions": 45, "routes": null, "period": "ongoing", "notes": "Jadrolinija. EUR 280M loan for 10 green vessels 2027-2028." },
    { "rank": 7, "name": "Denmark Bornholm", "budget_eur_millions": 38, "annual_eur_millions": 38, "routes": 1, "period": "ongoing", "notes": "Copenhagen–Bornholm." },
    { "rank": 8, "name": "Campania Isole Campane", "budget_eur_millions": 18, "annual_eur_millions": 18, "routes": 3, "period": "ongoing", "notes": "Napoli–Ischia/Capri/Procida." },
    { "rank": 9, "name": "Malta Gozo", "budget_eur_millions": 12, "annual_eur_millions": 12, "routes": 1, "period": "ongoing", "notes": "Gozo Channel Line: 4.2M PAX/year." }
  ],
  "ferry_companies": [
    { "id": "balearia", "name": "Baleària", "country": "ES", "pax_millions_2024": 5.6, "revenue_eur_millions": 691, "pax_change_pct": 8, "notes": "EUR 300M fleet investment 2024. Net profit down 36% due to EU ETS." },
    { "id": "brittany-ferries", "name": "Brittany Ferries", "country": "FR", "pax_millions_2024": 2.15, "revenue_eur_millions": 516, "pax_change_pct": 6.5, "notes": "EBITDA EUR 46.8M. Caen–Portsmouth busiest route: 700K PAX." },
    { "id": "jadrolinija", "name": "Jadrolinija", "country": "HR", "pax_millions_2024": 12.6, "revenue_eur_millions": null, "pax_change_pct": 2, "notes": "EUR 280M loan for 10 green vessels. International traffic +24%." },
    { "id": "fred-olsen", "name": "Fred. Olsen Express", "country": "ES", "pax_millions_2024": 3.7, "revenue_eur_millions": null, "pax_change_pct": null, "notes": "Canary Islands network. ~22,500 trips. Targeting 4M PAX in 2025 (+10%)." },
    { "id": "corsica-linea", "name": "Corsica Linea", "country": "FR", "pax_millions_2024": 0.587, "revenue_eur_millions": null, "pax_change_pct": 3.2, "notes": "DSP Corsica operator (Lots 2, 4, 5)." },
    { "id": "la-meridionale", "name": "La Méridionale", "country": "FR", "pax_millions_2024": 0.258, "revenue_eur_millions": null, "pax_change_pct": 14.1, "notes": "DSP Corsica operator (Lot 3)." },
    { "id": "gnv", "name": "GNV (Grandi Navi Veloci)", "country": "IT", "pax_millions_2024": null, "revenue_eur_millions": null, "pax_change_pct": null, "notes": "Routes: Genova, Palermo, Barcelona, Tunis. Long-haul overnight specialist." },
    { "id": "grimaldi-lines", "name": "Grimaldi Lines", "country": "IT", "pax_millions_2024": null, "revenue_eur_millions": null, "pax_change_pct": null, "notes": "Ro-Pax specialist. Routes to Spain, Tunisia, Greece." },
    { "id": "tirrenia", "name": "Tirrenia (CIN)", "country": "IT", "pax_millions_2024": null, "revenue_eur_millions": null, "pax_change_pct": null, "notes": "PSO operator for Sardinia and Sicily. EUR 72M/year subsidy." },
    { "id": "moby-lines", "name": "Moby Lines", "country": "IT", "pax_millions_2024": null, "revenue_eur_millions": null, "pax_change_pct": null, "notes": "Routes from Livorno and Olbia. Costa Smeralda specialist." },
    { "id": "anek-lines", "name": "ANEK Lines", "country": "GR", "pax_millions_2024": null, "revenue_eur_millions": null, "pax_change_pct": null, "notes": "Routes from Patras and Igoumenitsa to Italy. Crete specialist." },
    { "id": "blue-star-ferries", "name": "Blue Star Ferries", "country": "GR", "pax_millions_2024": null, "revenue_eur_millions": null, "pax_change_pct": null, "notes": "Greece's largest PSO operator. 3 hybrid vessels." },
    { "id": "caronte-tourist", "name": "Caronte & Tourist", "country": "IT", "pax_millions_2024": 11.4, "revenue_eur_millions": null, "pax_change_pct": null, "notes": "World's busiest ferry route: Messina–Villa San Giovanni." },
    { "id": "virtu-ferries", "name": "Virtu Ferries", "country": "MT", "pax_millions_2024": null, "revenue_eur_millions": null, "pax_change_pct": null, "notes": "Malta–Sicily monopoly. Catania (1.5h) and Pozzallo." },
    { "id": "po-ferries", "name": "P&O Ferries", "country": "UK", "pax_millions_2024": null, "revenue_eur_millions": null, "pax_change_pct": null, "notes": "Dover–Calais. Part of DP World. 50+ daily departures." }
  ],
  "regulatory_framework": [
    { "name": "EU ETS Maritime", "status": "active_since_2024", "coverage_2024_pct": 40, "coverage_2025_pct": 70, "coverage_2026_pct": 100 },
    { "name": "Regulation EC 3577/92", "description": "Maritime cabotage — basis for all PSO contracts in EU" },
    { "name": "Directive 98/41/EC", "description": "Passenger registration on passenger ships" },
    { "name": "SOLAS Convention", "description": "Safety of Life at Sea" },
    { "name": "EU Entry/Exit System (EES)", "status": "expected_2025", "description": "Biometric registration for non-EU citizens at border crossings" }
  ],
  "ports": [
    {
      "code": "bcn", "name": "Barcelona", "country": "ES", "region": "Western Mediterranean",
      "lat": 41.38, "lng": 2.18,
      "annual_pax_millions": 1.8, "pax_trend_pct": 4.7,
      "ferry_pax_millions": 1.8, "cruise_pax_millions": 3.6,
      "main_operators": ["Baleària", "Trasmediterránea", "GNV"],
      "main_routes": ["Barcelona–Palma", "Barcelona–Ibiza", "Barcelona–Genova"],
      "port_authority": "Autoritat Portuària de Barcelona",
      "pso_budget_eur_millions": 227,
      "status": "contacted", "priority": 1
    },
    {
      "code": "vlc", "name": "Valencia", "country": "ES", "region": "Western Mediterranean",
      "lat": 39.46, "lng": -0.32,
      "annual_pax_millions": 0.836, "pax_trend_pct": 3.85,
      "ferry_pax_millions": 0.836, "cruise_pax_millions": 0.78,
      "main_operators": ["Trasmediterránea", "Baleària"],
      "main_routes": ["Valencia–Ibiza", "Valencia–Palma"],
      "port_authority": "Autoritat Portuària de València",
      "pso_budget_eur_millions": 227,
      "status": "contacted", "priority": 1
    },
    {
      "code": "pmi", "name": "Palma de Mallorca", "country": "ES", "region": "Western Mediterranean",
      "lat": 39.56, "lng": 2.65,
      "annual_pax_millions": 3.85, "pax_trend_pct": null,
      "ferry_pax_millions": 7.5, "cruise_pax_millions": 1.4,
      "main_operators": ["Baleària", "Trasmediterránea"],
      "main_routes": ["Palma–Barcelona", "Palma–Valencia", "Palma–Ibiza"],
      "port_authority": "Autoritat Portuària de Balears",
      "pso_budget_eur_millions": 227,
      "notes": "APB 5 ports total: ~9.4M PAX. 3 cruise/day limit 2024-2029.",
      "status": "contacted", "priority": 1
    },
    {
      "code": "ibz", "name": "Ibiza", "country": "ES", "region": "Western Mediterranean",
      "lat": 38.91, "lng": 1.43,
      "annual_pax_millions": 1.49, "pax_trend_pct": 5.3,
      "ferry_pax_millions": 1.49, "cruise_pax_millions": null,
      "main_operators": ["Baleària", "Trasmediterránea"],
      "main_routes": ["Ibiza–Barcelona", "Ibiza–Valencia", "Ibiza–Palma", "Ibiza–Dénia"],
      "port_authority": "Autoritat Portuària de Balears",
      "pso_budget_eur_millions": 227,
      "status": "contacted", "priority": 2
    },
    {
      "code": "mah", "name": "Maó (Menorca)", "country": "ES", "region": "Western Mediterranean",
      "lat": 39.89, "lng": 4.27,
      "annual_pax_millions": 0.66, "pax_trend_pct": 6.5,
      "main_operators": ["Baleària", "Trasmediterránea"],
      "main_routes": ["Maó–Barcelona", "Maó–Valencia"],
      "port_authority": "Autoritat Portuària de Balears",
      "status": "contacted", "priority": 3
    },
    {
      "code": "alg", "name": "Algeciras", "country": "ES", "region": "Western Mediterranean",
      "lat": 36.13, "lng": -5.45,
      "annual_pax_millions": 6.35, "pax_trend_pct": 6.7,
      "main_operators": ["Baleària", "Trasmediterránea", "FRS", "Acciona"],
      "main_routes": ["Algeciras–Tánger Med", "Algeciras–Ceuta"],
      "port_authority": "Autoridad Portuaria de la Bahía de Algeciras",
      "notes": "Spain's largest port by tonnage (~107M tons). 25% of Spanish foreign trade.",
      "status": "contacted", "priority": 2
    },
    {
      "code": "mlg", "name": "Málaga", "country": "ES", "region": "Western Mediterranean",
      "lat": 36.71, "lng": -4.42,
      "annual_pax_millions": 0.60, "pax_trend_pct": 8.3,
      "main_operators": ["Acciona", "FRS"],
      "main_routes": ["Málaga–Melilla"],
      "port_authority": "Autoridad Portuaria de Málaga",
      "status": "contacted", "priority": 3
    },
    {
      "code": "ali", "name": "Alicante", "country": "ES", "region": "Western Mediterranean",
      "lat": 38.34, "lng": -0.48,
      "annual_pax_millions": 0.75, "pax_trend_pct": 7.1,
      "main_operators": ["Baleària"],
      "main_routes": ["Alicante–Ibiza", "Alicante–Palma"],
      "port_authority": "Autoridad Portuaria de Alicante",
      "status": "contacted", "priority": 3
    },
    {
      "code": "sct", "name": "Santa Cruz de Tenerife", "country": "ES", "region": "Canary Islands",
      "lat": 28.47, "lng": -16.25,
      "annual_pax_millions": 1.7, "pax_trend_pct": 5.9,
      "main_operators": ["Fred. Olsen Express", "Naviera Armas"],
      "main_routes": ["Tenerife–Gran Canaria", "Tenerife–La Palma"],
      "port_authority": "Autoridad Portuaria de Santa Cruz de Tenerife",
      "status": "contacted", "priority": 2
    },
    {
      "code": "lpa", "name": "Las Palmas de Gran Canaria", "country": "ES", "region": "Canary Islands",
      "lat": 28.14, "lng": -15.43,
      "annual_pax_millions": 1.4, "pax_trend_pct": 9.7,
      "main_operators": ["Fred. Olsen Express", "Naviera Armas"],
      "main_routes": ["Las Palmas–Tenerife", "Las Palmas–Fuerteventura"],
      "port_authority": "Autoridad Portuaria de Las Palmas",
      "notes": "Fred. Olsen: >3.7M PAX in Canary network 2024.",
      "status": "contacted", "priority": 2
    },
    {
      "code": "arr", "name": "Arrecife (Lanzarote)", "country": "ES", "region": "Canary Islands",
      "lat": 28.96, "lng": -13.55,
      "annual_pax_millions": 0.95, "pax_trend_pct": 5.6,
      "main_operators": ["Naviera Armas", "Fred. Olsen"],
      "main_routes": ["Lanzarote–Gran Canaria", "Lanzarote–Fuerteventura"],
      "port_authority": "Autoridad Portuaria de Las Palmas",
      "status": "contacted", "priority": 3
    },
    {
      "code": "frt", "name": "Fuerteventura", "country": "ES", "region": "Canary Islands",
      "lat": 28.49, "lng": -13.86,
      "annual_pax_millions": 0.85, "pax_trend_pct": 5.0,
      "main_operators": ["Naviera Armas", "Fred. Olsen"],
      "main_routes": ["Fuerteventura–Gran Canaria", "Fuerteventura–Lanzarote"],
      "port_authority": "Autoridad Portuaria de Las Palmas",
      "status": "contacted", "priority": 3
    },
    {
      "code": "stn", "name": "Santander", "country": "ES", "region": "Atlantic",
      "lat": 43.46, "lng": -3.80,
      "annual_pax_millions": 0.65, "pax_trend_pct": 6.6,
      "main_operators": ["Brittany Ferries"],
      "main_routes": ["Santander–Portsmouth", "Santander–Plymouth"],
      "port_authority": "Autoridad Portuaria de Santander",
      "status": "contacted", "priority": 2
    },
    {
      "code": "bil", "name": "Bilbao", "country": "ES", "region": "Atlantic",
      "lat": 43.35, "lng": -3.02,
      "annual_pax_millions": 0.70, "pax_trend_pct": 7.7,
      "main_operators": ["Brittany Ferries"],
      "main_routes": ["Bilbao–Portsmouth"],
      "port_authority": "Autoridad Portuaria de Bilbao",
      "status": "prospect", "priority": 2
    },
    {
      "code": "gen", "name": "Genova", "country": "IT", "region": "Western Mediterranean",
      "lat": 44.41, "lng": 8.93,
      "annual_pax_millions": 2.72, "pax_trend_pct": 1.4,
      "ferry_pax_millions": 2.72, "cruise_pax_millions": 2.28,
      "main_operators": ["GNV", "Tirrenia (CIN)", "Grimaldi Lines"],
      "main_routes": ["Genova–Palermo", "Genova–Cagliari", "Genova–Barcelona", "Genova–Tunis"],
      "port_authority": "Autorità di Sistema Portuale del Mar Ligure Occidentale",
      "pso_budget_eur_millions": 72,
      "notes": "5M total PAX (ferry+cruise). August 2024 peak: 710,084 PAX ferry (+6.5%).",
      "status": "contacted", "priority": 1
    },
    {
      "code": "civ", "name": "Civitavecchia", "country": "IT", "region": "Western Mediterranean",
      "lat": 42.09, "lng": 11.79,
      "annual_pax_millions": 5.1, "pax_trend_pct": 4.3,
      "ferry_pax_millions": 1.6, "cruise_pax_millions": 3.46,
      "main_operators": ["Tirrenia (CIN)", "GNV", "Grimaldi Lines"],
      "main_routes": ["Civitavecchia–Palermo", "Civitavecchia–Cagliari"],
      "port_authority": "Autorità di Sistema Portuale del Mar Tirreno Centro Settentrionale",
      "pso_budget_eur_millions": 72,
      "notes": "Italy's largest cruise port. Record 3.46M cruisers in 2024. ~841 cruise calls.",
      "status": "contacted", "priority": 1
    },
    {
      "code": "nap", "name": "Napoli", "country": "IT", "region": "Western Mediterranean",
      "lat": 40.84, "lng": 14.27,
      "annual_pax_millions": 9.37, "pax_trend_pct": 6.0,
      "main_operators": ["SNAV", "Grimaldi Lines", "Tirrenia", "Caremar"],
      "main_routes": ["Napoli–Palermo", "Napoli–Cagliari", "Napoli–Ischia", "Napoli–Capri"],
      "port_authority": "Autorità di Sistema Portuale del Mar Tirreno Centrale",
      "pso_budget_eur_millions": 18,
      "notes": "Italy's 2nd busiest passenger port. PSO Campania islands: EUR 18M/year.",
      "status": "priority", "priority_num": 1
    },
    {
      "code": "pal", "name": "Palermo", "country": "IT", "region": "Western Mediterranean",
      "lat": 38.12, "lng": 13.36,
      "annual_pax_millions": 2.3, "pax_trend_pct": 4.5,
      "main_operators": ["GNV", "Tirrenia (CIN)", "Grimaldi Lines"],
      "main_routes": ["Palermo–Genova", "Palermo–Napoli", "Palermo–Civitavecchia"],
      "port_authority": "Autorità di Sistema Portuale della Sicilia Occidentale",
      "pso_budget_eur_millions": 72,
      "status": "contacted", "priority": 1
    },
    {
      "code": "cag", "name": "Cagliari", "country": "IT", "region": "Western Mediterranean",
      "lat": 39.22, "lng": 9.11,
      "annual_pax_millions": 1.2, "pax_trend_pct": 4.0,
      "main_operators": ["Tirrenia (CIN)", "GNV", "Grimaldi Lines"],
      "main_routes": ["Cagliari–Genova", "Cagliari–Civitavecchia", "Cagliari–Napoli"],
      "port_authority": "Autorità di Sistema Portuale della Sardegna",
      "pso_budget_eur_millions": 72,
      "notes": "Sardinia capital. ~3.5M tourists in Sardinia 2024.",
      "status": "priority", "priority_num": 1
    },
    {
      "code": "olt", "name": "Olbia", "country": "IT", "region": "Western Mediterranean",
      "lat": 40.92, "lng": 9.50,
      "annual_pax_millions": 3.69, "pax_trend_pct": 3.2,
      "main_operators": ["Moby Lines", "Tirrenia (CIN)"],
      "main_routes": ["Olbia–Genova", "Olbia–Civitavecchia", "Olbia–Livorno"],
      "port_authority": "Autorità di Sistema Portuale della Sardegna",
      "pso_budget_eur_millions": 72,
      "notes": "Costa Smeralda gateway. Shorter crossing to mainland (9.5h vs 16h from Cagliari).",
      "status": "prospect", "priority": 2
    },
    {
      "code": "anc", "name": "Ancona", "country": "IT", "region": "Adriatic",
      "lat": 43.62, "lng": 13.51,
      "annual_pax_millions": 0.94, "pax_trend_pct": 3.6,
      "main_operators": ["ANEK Lines", "Superfast Ferries", "Jadrolinija"],
      "main_routes": ["Ancona–Patras", "Ancona–Split"],
      "port_authority": "Autorità di Sistema Portuale del Mare Adriatico Centrale",
      "notes": "Split-Ancona traffic +24% in 2024.",
      "status": "prospect", "priority": 2
    },
    {
      "code": "bri", "name": "Bari", "country": "IT", "region": "Adriatic",
      "lat": 41.12, "lng": 16.87,
      "annual_pax_millions": 1.15, "pax_trend_pct": 4.5,
      "main_operators": ["Superfast Ferries", "Jadrolinija", "Montenegro Lines"],
      "main_routes": ["Bari–Patras", "Bari–Bar", "Bari–Durres"],
      "port_authority": "Autorità di Sistema Portuale del Mare Adriatico Meridionale",
      "notes": "International traffic +15% in 2024.",
      "status": "prospect", "priority": 2
    },
    {
      "code": "ven", "name": "Venezia", "country": "IT", "region": "Adriatic",
      "lat": 45.44, "lng": 12.33,
      "annual_pax_millions": 1.08, "pax_trend_pct": 3.8,
      "main_operators": ["Jadrolinija", "Minoan Lines", "Adria Ferries"],
      "main_routes": ["Venezia–Patras", "Venezia–Igoumenitsa"],
      "port_authority": "Autorità di Sistema Portuale del Mare Adriatico Settentrionale",
      "notes": "Large cruise ship ban since 2021 (UNESCO protection).",
      "status": "prospect", "priority": 2
    },
    {
      "code": "liv", "name": "Livorno", "country": "IT", "region": "Western Mediterranean",
      "lat": 43.55, "lng": 10.30,
      "annual_pax_millions": 1.9, "pax_trend_pct": 5.3,
      "main_operators": ["Moby Lines", "Corsica Ferries", "GNV"],
      "main_routes": ["Livorno–Bastia", "Livorno–Olbia", "Livorno–Cagliari"],
      "port_authority": "Autorità di Sistema Portuale del Mar Tirreno Settentrionale",
      "notes": "Shorter crossing to Corsica (6h). Tuscany tourism: ~12M visitors.",
      "status": "prospect", "priority": 2
    },
    {
      "code": "cat", "name": "Catania", "country": "IT", "region": "Eastern Mediterranean",
      "lat": 37.51, "lng": 15.09,
      "annual_pax_millions": 0.75, "pax_trend_pct": 7.1,
      "main_operators": ["Virtu Ferries"],
      "main_routes": ["Catania–Valletta"],
      "port_authority": "Autorità di Sistema Portuale della Sicilia Orientale",
      "status": "none", "priority": 3
    },
    {
      "code": "mes", "name": "Messina", "country": "IT", "region": "Eastern Mediterranean",
      "lat": 38.19, "lng": 15.55,
      "annual_pax_millions": 11.4, "pax_trend_pct": 4.7,
      "main_operators": ["Caronte & Tourist", "RFI Ferrovie", "Bluferries"],
      "main_routes": ["Messina–Villa San Giovanni"],
      "port_authority": "Autorità di Sistema Portuale della Sicilia Orientale",
      "notes": "World's most frequent ferry route (3km/20min). >1.5M trucks annually.",
      "status": "none", "priority": 3
    },
    {
      "code": "mrs", "name": "Marseille", "country": "FR", "region": "Western Mediterranean",
      "lat": 43.30, "lng": 5.37,
      "annual_pax_millions": 1.5, "pax_trend_pct": null,
      "ferry_pax_millions": 1.5, "cruise_pax_millions": 2.4,
      "main_operators": ["Corsica Linea", "La Méridionale", "Algérie Ferries"],
      "main_routes": ["Marseille–Ajaccio", "Marseille–Bastia", "Marseille–Alger"],
      "port_authority": "Grand Port Maritime de Marseille",
      "pso_budget_eur_millions": 122,
      "notes": "DSP Corsica 2023-2030: EUR 853.6M approved by EU Commission 26/11/2024.",
      "status": "contacted", "priority": 1
    },
    {
      "code": "ajc", "name": "Ajaccio", "country": "FR", "region": "Western Mediterranean",
      "lat": 41.92, "lng": 8.74,
      "annual_pax_millions": 1.28, "pax_trend_pct": 4.1,
      "main_operators": ["La Méridionale", "Corsica Ferries"],
      "main_routes": ["Ajaccio–Marseille", "Ajaccio–Nice", "Ajaccio–Toulon"],
      "port_authority": "Collectivité de Corse",
      "pso_budget_eur_millions": 122,
      "notes": "DSP Corsica Lot 1. Corsica capital, Napoleon's birthplace.",
      "status": "prospect", "priority": 2
    },
    {
      "code": "bst", "name": "Bastia", "country": "FR", "region": "Western Mediterranean",
      "lat": 42.70, "lng": 9.45,
      "annual_pax_millions": 1.08, "pax_trend_pct": 3.8,
      "main_operators": ["Corsica Ferries", "La Méridionale"],
      "main_routes": ["Bastia–Marseille", "Bastia–Nice", "Bastia–Livorno"],
      "port_authority": "CCI Haute-Corse",
      "pso_budget_eur_millions": 122,
      "notes": "DSP Corsica Lot 2.",
      "status": "none", "priority": 3
    },
    {
      "code": "tln", "name": "Toulon", "country": "FR", "region": "Western Mediterranean",
      "lat": 43.12, "lng": 5.93,
      "annual_pax_millions": 1.0, "pax_trend_pct": 5.3,
      "main_operators": ["Corsica Ferries"],
      "main_routes": ["Toulon–Bastia", "Toulon–Ajaccio"],
      "port_authority": "Grand Port Maritime de Marseille",
      "notes": "French naval base. 7h crossing to Bastia.",
      "status": "none", "priority": 3
    },
    {
      "code": "cal", "name": "Calais", "country": "FR", "region": "English Channel",
      "lat": 50.96, "lng": 1.87,
      "annual_pax_millions": 7.6, "pax_trend_pct": 4.1,
      "main_operators": ["P&O Ferries", "DFDS"],
      "main_routes": ["Calais–Dover"],
      "port_authority": "Port Boulogne Calais",
      "notes": "40% of France-UK truck traffic. 50+ daily departures.",
      "status": "priority", "priority_num": 1
    },
    {
      "code": "cbn", "name": "Cherbourg", "country": "FR", "region": "English Channel",
      "lat": 49.64, "lng": -1.62,
      "annual_pax_millions": 1.08, "pax_trend_pct": 5.9,
      "main_operators": ["Brittany Ferries", "Irish Ferries"],
      "main_routes": ["Cherbourg–Portsmouth", "Cherbourg–Rosslare"],
      "port_authority": "Port de Cherbourg",
      "notes": "Post-Brexit hub: +22% growth since 2022.",
      "status": "none", "priority": 3
    },
    {
      "code": "cae", "name": "Caen (Ouistreham)", "country": "FR", "region": "English Channel",
      "lat": 49.28, "lng": -0.25,
      "annual_pax_millions": 0.90, "pax_trend_pct": 5.9,
      "main_operators": ["Brittany Ferries"],
      "main_routes": ["Caen–Portsmouth"],
      "port_authority": "CCI Caen Normandie",
      "notes": "Caen–Portsmouth: 700,000 PAX in 2024 (+9.3%).",
      "status": "none", "priority": 3
    },
    {
      "code": "lhv", "name": "Le Havre", "country": "FR", "region": "English Channel",
      "lat": 49.49, "lng": 0.11,
      "annual_pax_millions": 0.95, "pax_trend_pct": 5.6,
      "main_operators": ["DFDS", "Irish Ferries"],
      "main_routes": ["Le Havre–Portsmouth", "Le Havre–Dublin"],
      "port_authority": "Grand Port Maritime du Havre",
      "notes": "2nd French port by tonnage (~70M tons). Le Havre–Portsmouth +16% in 2024.",
      "status": "none", "priority": 3
    },
    {
      "code": "pir", "name": "Piraeus", "country": "GR", "region": "Eastern Mediterranean",
      "lat": 37.94, "lng": 23.64,
      "annual_pax_millions": 17.05, "pax_trend_pct": 5.5,
      "ferry_pax_millions": 17.05, "cruise_pax_millions": 1.7,
      "main_operators": ["ANEK Lines", "Blue Star Ferries", "Hellenic Seaways", "Sea Jets"],
      "main_routes": ["Piraeus–Heraklion", "Piraeus–Santorini", "Piraeus–Mykonos"],
      "port_authority": "Piraeus Port Authority (OLP)",
      "pso_budget_eur_millions": 167,
      "notes": "Europe's busiest passenger port. Record OLP net profit EUR 87.5M. Award: Ferry Shipping Port of the Year 2024.",
      "status": "contacted", "priority": 1
    },
    {
      "code": "hkl", "name": "Heraklion", "country": "GR", "region": "Eastern Mediterranean",
      "lat": 35.34, "lng": 25.14,
      "annual_pax_millions": 2.2, "pax_trend_pct": 4.8,
      "main_operators": ["ANEK Lines", "Minoan Lines"],
      "main_routes": ["Heraklion–Patras"],
      "port_authority": "Heraklion Port Authority",
      "notes": "Crete's main port. ~5M tourists in Crete 2024.",
      "status": "priority", "priority_num": 1
    },
    {
      "code": "pat", "name": "Patras", "country": "GR", "region": "Eastern Mediterranean",
      "lat": 38.26, "lng": 21.73,
      "annual_pax_millions": 1.35, "pax_trend_pct": 3.8,
      "main_operators": ["ANEK Lines", "Superfast Ferries", "Minoan Lines"],
      "main_routes": ["Patras–Ancona", "Patras–Bari", "Patras–Venezia"],
      "port_authority": "Patras Port Authority",
      "notes": "Greece-Italy gateway. Patras–Ancona: 19.5h.",
      "status": "contacted", "priority": 2
    },
    {
      "code": "igu", "name": "Igoumenitsa", "country": "GR", "region": "Adriatic",
      "lat": 39.51, "lng": 20.27,
      "annual_pax_millions": 1.9, "pax_trend_pct": 5.6,
      "main_operators": ["Superfast Ferries", "ANEK Lines"],
      "main_routes": ["Igoumenitsa–Ancona", "Igoumenitsa–Bari"],
      "port_authority": "Igoumenitsa Port Authority",
      "notes": "Shortest Greece-Italy route. Igoumenitsa–Bari: 9h. >300,000 trucks.",
      "status": "prospect", "priority": 2
    },
    {
      "code": "rho", "name": "Rodas", "country": "GR", "region": "Eastern Mediterranean",
      "lat": 36.45, "lng": 28.23,
      "annual_pax_millions": 1.9, "pax_trend_pct": 5.6,
      "main_operators": ["Dodekanisos Seaways", "Blue Star Ferries"],
      "main_routes": ["Rodas–Piraeus", "Rodas–Kos", "Rodas–Crete"],
      "port_authority": "Rhodes Port Authority",
      "notes": "Dodecanese hub. ~2.5M tourists in Rhodes 2024.",
      "status": "prospect", "priority": 2
    },
    {
      "code": "cht", "name": "Chios", "country": "GR", "region": "Eastern Mediterranean",
      "lat": 38.37, "lng": 26.14,
      "annual_pax_millions": 0.69, "pax_trend_pct": 4.5,
      "main_operators": ["Hellenic Seaways"],
      "main_routes": ["Chios–Piraeus", "Chios–Lesbos"],
      "port_authority": "Chios Port Authority",
      "notes": "Known for mastic resin. Nea Moni UNESCO site.",
      "status": "none", "priority": 3
    },
    {
      "code": "les", "name": "Lesbos (Mytilene)", "country": "GR", "region": "Eastern Mediterranean",
      "lat": 39.10, "lng": 26.56,
      "annual_pax_millions": 0.63, "pax_trend_pct": 4.0,
      "main_operators": ["Hellenic Seaways"],
      "main_routes": ["Lesbos–Piraeus"],
      "port_authority": "Lesbos Port Authority",
      "notes": "Olive tourism and ouzo. Petrified Forest UNESCO site.",
      "status": "none", "priority": 3
    },
    {
      "code": "spl", "name": "Split", "country": "HR", "region": "Adriatic",
      "lat": 43.51, "lng": 16.44,
      "annual_pax_millions": 6.02, "pax_trend_pct": 4.2,
      "main_operators": ["Jadrolinija", "Kapetan Luka"],
      "main_routes": ["Split–Ancona", "Split–Hvar", "Split–Brač"],
      "port_authority": "Lučka uprava Split",
      "pso_budget_eur_millions": 45,
      "notes": "Croatia's busiest port. Jadrolinija: 12.6M PAX total network (+2%).",
      "status": "prospect", "priority": 1
    },
    {
      "code": "dub", "name": "Dubrovnik", "country": "HR", "region": "Adriatic",
      "lat": 42.65, "lng": 18.09,
      "annual_pax_millions": 1.3, "pax_trend_pct": 8.3,
      "main_operators": ["Jadrolinija"],
      "main_routes": ["Dubrovnik–Bari", "Dubrovnik–Korcula"],
      "port_authority": "Lučka uprava Dubrovnik",
      "notes": "~1.2M cruise passengers. 8,000 daily cruise passenger limit.",
      "status": "prospect", "priority": 2
    },
    {
      "code": "zdr", "name": "Zadar", "country": "HR", "region": "Adriatic",
      "lat": 44.12, "lng": 15.23,
      "annual_pax_millions": 0.85, "pax_trend_pct": 6.3,
      "main_operators": ["Jadrolinija"],
      "main_routes": ["Zadar–Ancona", "Zadar–islands"],
      "port_authority": "Lučka uprava Zadar",
      "notes": "Known for Sea Organ installation.",
      "status": "none", "priority": 3
    },
    {
      "code": "dvr", "name": "Dover", "country": "UK", "region": "English Channel",
      "lat": 51.12, "lng": 1.32,
      "annual_pax_millions": 10.2, "pax_trend_pct": 4.1,
      "main_operators": ["P&O Ferries", "DFDS"],
      "main_routes": ["Dover–Calais"],
      "port_authority": "Port of Dover",
      "notes": "World's busiest ferry port. 17% of UK foreign trade value. 50+ daily departures.",
      "status": "priority", "priority_num": 1
    },
    {
      "code": "prt", "name": "Portsmouth", "country": "UK", "region": "English Channel",
      "lat": 50.80, "lng": -1.10,
      "annual_pax_millions": 7.0, "pax_trend_pct": null,
      "ferry_pax_millions": 1.4, "cruise_pax_millions": 0.131,
      "main_operators": ["Brittany Ferries", "P&O Ferries", "Wightlink"],
      "main_routes": ["Portsmouth–Caen", "Portsmouth–Cherbourg", "Portsmouth–Le Havre", "Portsmouth–Santander"],
      "port_authority": "Portsmouth International Port",
      "notes": "~1.4M international PAX + 5.6M domestic (Isle of Wight). PIP profit: GBP 8M. Economic impact: GBP 400M nationally.",
      "status": "priority", "priority_num": 1
    },
    {
      "code": "plm", "name": "Plymouth", "country": "UK", "region": "English Channel",
      "lat": 50.37, "lng": -4.14,
      "annual_pax_millions": 0.48, "pax_trend_pct": 4.3,
      "main_operators": ["Brittany Ferries"],
      "main_routes": ["Plymouth–Santander", "Plymouth–Roscoff"],
      "port_authority": "Plymouth City Council",
      "notes": "Mayflower historic port.",
      "status": "none", "priority": 3
    },
    {
      "code": "hol", "name": "Holyhead", "country": "UK", "region": "Atlantic",
      "lat": 53.31, "lng": -4.63,
      "annual_pax_millions": 1.7, "pax_trend_pct": 6.3,
      "main_operators": ["Irish Ferries", "Stena Line"],
      "main_routes": ["Holyhead–Dublin"],
      "port_authority": "Stena Line Ports",
      "notes": "Wales-Ireland hub. >500,000 trucks.",
      "status": "prospect", "priority": 3
    },
    {
      "code": "dbl", "name": "Dublin", "country": "IE", "region": "Atlantic",
      "lat": 53.35, "lng": -6.26,
      "annual_pax_millions": 2.4, "pax_trend_pct": 9.1,
      "main_operators": ["Irish Ferries", "Stena Line", "P&O Ferries"],
      "main_routes": ["Dublin–Holyhead", "Dublin–Liverpool", "Dublin–Le Havre"],
      "port_authority": "Dublin Port Company",
      "notes": "Ireland's largest port. 50% of Irish foreign trade.",
      "status": "prospect", "priority": 1
    },
    {
      "code": "ros", "name": "Rosslare", "country": "IE", "region": "Atlantic",
      "lat": 52.25, "lng": -6.34,
      "annual_pax_millions": 0.88, "pax_trend_pct": 9.1,
      "main_operators": ["Irish Ferries", "Stena Line"],
      "main_routes": ["Rosslare–Pembroke", "Rosslare–Cherbourg", "Rosslare–Fishguard"],
      "port_authority": "Rosslare Europort",
      "notes": "Post-Brexit growth +15%. Direct routes to France.",
      "status": "prospect", "priority": 2
    },
    {
      "code": "cpn", "name": "Copenhagen", "country": "DK", "region": "Baltic",
      "lat": 55.68, "lng": 12.59,
      "annual_pax_millions": 1.6, "pax_trend_pct": 6.7,
      "main_operators": ["DFDS", "Bornholmstrafikken"],
      "main_routes": ["Copenhagen–Oslo", "Copenhagen–Bornholm"],
      "port_authority": "Copenhagen Malmö Port",
      "notes": "Scandinavia's largest cruise port: ~1.2M cruisers.",
      "status": "prospect", "priority": 2
    },
    {
      "code": "osl", "name": "Oslo", "country": "NO", "region": "Baltic",
      "lat": 59.91, "lng": 10.76,
      "annual_pax_millions": 1.48, "pax_trend_pct": 3.3,
      "main_operators": ["DFDS", "Color Line"],
      "main_routes": ["Oslo–Copenhagen", "Oslo–Kiel"],
      "port_authority": "Oslo Havn",
      "notes": "Norway's international ferry hub.",
      "status": "prospect", "priority": 2
    },
    {
      "code": "gth", "name": "Gothenburg", "country": "SE", "region": "Baltic",
      "lat": 57.70, "lng": 11.97,
      "annual_pax_millions": 1.31, "pax_trend_pct": 5.3,
      "main_operators": ["Stena Line", "DFDS", "Color Line"],
      "main_routes": ["Gothenburg–Kiel", "Gothenburg–Frederikshavn"],
      "port_authority": "Port of Gothenburg",
      "notes": "Sweden's largest port. 70% of Swedish foreign trade in containers.",
      "status": "prospect", "priority": 2
    },
    {
      "code": "trb", "name": "Trelleborg", "country": "SE", "region": "Baltic",
      "lat": 55.37, "lng": 13.16,
      "annual_pax_millions": 0.75, "pax_trend_pct": 7.1,
      "main_operators": ["TT-Line", "Stena Line"],
      "main_routes": ["Trelleborg–Rostock", "Trelleborg–Travemünde"],
      "port_authority": "Port of Trelleborg",
      "notes": "40% of Sweden-EU truck traffic.",
      "status": "none", "priority": 3
    },
    {
      "code": "ros_de", "name": "Rostock", "country": "DE", "region": "Baltic",
      "lat": 54.09, "lng": 12.13,
      "annual_pax_millions": 1.9, "pax_trend_pct": 5.6,
      "main_operators": ["TT-Line", "Scandlines", "DFDS"],
      "main_routes": ["Rostock–Trelleborg", "Rostock–Gedser", "Rostock–Helsinki"],
      "port_authority": "Rostock Port GmbH",
      "notes": "Germany's largest Baltic port.",
      "status": "none", "priority": 2
    },
    {
      "code": "vlt", "name": "Valletta", "country": "MT", "region": "Eastern Mediterranean",
      "lat": 35.90, "lng": 14.51,
      "annual_pax_millions": 1.0, "pax_trend_pct": 10.0,
      "main_operators": ["Virtu Ferries"],
      "main_routes": ["Valletta–Catania", "Valletta–Pozzallo"],
      "port_authority": "Malta Freeport / Transport Malta",
      "notes": "Grand Harbour. Virtu Ferries monopoly to Sicily. ~800,000 cruisers.",
      "status": "contacted", "priority": 2
    },
    {
      "code": "gdn", "name": "Gdańsk", "country": "PL", "region": "Baltic",
      "lat": 54.35, "lng": 18.65,
      "annual_pax_millions": 0.52, "pax_trend_pct": 8.3,
      "main_operators": ["Polferries", "Stena Line"],
      "main_routes": ["Gdańsk–Nynashamn"],
      "port_authority": "Port of Gdańsk Authority",
      "notes": "Poland's Baltic hub. Solidarność birthplace.",
      "status": "none", "priority": 2
    },
    {
      "code": "vln", "name": "Vilnius (Klaipeda)", "country": "LT", "region": "Baltic",
      "lat": 55.71, "lng": 21.13,
      "annual_pax_millions": 0.58, "pax_trend_pct": 5.5,
      "main_operators": ["DFDS", "TT-Line"],
      "main_routes": ["Klaipeda–Kiel"],
      "port_authority": "Klaipėda State Seaport",
      "notes": "Lithuania's only seaport. ~1M TEU containers.",
      "status": "none", "priority": 3
    },
    {
      "code": "tnm", "name": "Tánger Med", "country": "MA", "region": "Western Mediterranean",
      "lat": 35.88, "lng": -5.50,
      "annual_pax_millions": 3.05, "pax_trend_pct": 9.5,
      "main_operators": ["Baleària", "FRS", "Trasmediterránea"],
      "main_routes": ["Tánger Med–Algeciras"],
      "port_authority": "Marsa Maroc / Tanger Med Port Authority",
      "notes": "Africa's largest port. ~8M TEU containers. EUR 2,000M total investment.",
      "status": "prospect", "priority": 2
    },
    {
      "code": "tun", "name": "Tunis (La Goulette)", "country": "TN", "region": "Western Mediterranean",
      "lat": 36.82, "lng": 10.30,
      "annual_pax_millions": 1.6, "pax_trend_pct": 14.3,
      "main_operators": ["CTN", "GNV", "Grimaldi Lines"],
      "main_routes": ["Tunis–Genova", "Tunis–Marseille", "Tunis–Palermo"],
      "port_authority": "Office de la Marine Marchande et des Ports",
      "notes": "Tunisia tourism: ~9M visitors (+15%).",
      "status": "prospect", "priority": 2
    },
    {
      "code": "drr", "name": "Durrës", "country": "AL", "region": "Adriatic",
      "lat": 41.32, "lng": 19.45,
      "annual_pax_millions": 0.82, "pax_trend_pct": 17.1,
      "main_operators": ["Adria Ferries", "Superfast Ferries", "Ventouris Ferries"],
      "main_routes": ["Durrës–Bari", "Durrës–Ancona"],
      "port_authority": "Albanian Ports Authority",
      "notes": "Albania tourism: ~7M visitors (+20%). +35% growth in 3 years.",
      "status": "none", "priority": 2
    },
    {
      "code": "bar_me", "name": "Bar", "country": "ME", "region": "Adriatic",
      "lat": 42.10, "lng": 19.10,
      "annual_pax_millions": 0.25, "pax_trend_pct": 13.6,
      "main_operators": ["Montenegro Lines", "Jadrolinija"],
      "main_routes": ["Bar–Bari"],
      "port_authority": "Port of Bar Authority",
      "notes": "Montenegro tourism: ~2.5M visitors (+15%).",
      "status": "none", "priority": 3
    }
  ],
  "endpoints": {
    "json_api": "https://www.infopax.fr/api/ports-summary.json",
    "full_llms": "https://www.infopax.fr/llms-full.txt",
    "llms_txt": "https://www.infopax.fr/llms.txt",
    "sitemap": "https://www.infopax.fr/sitemap.xml",
    "documentation": "https://www.infopax.fr/api",
    "methodology": "https://www.infopax.fr/methodology"
  }
}