Discover/Navigazione Laghi API
live

Navigazione Laghi APInavigazionelaghi.it ↗

Query port lists and scheduled boat connections for Lake Maggiore, Lake Garda, and Lake Como via the Navigazione Laghi journey planner API.

Endpoint health
verified 2h ago
list_ports
search_connections
2/2 passing latest checkself-healing
Endpoints
2
Updated
2h ago

What is the Navigazione Laghi API?

The Navigazione Laghi API gives developers access to 2 endpoints covering public boat timetables for the three Italian lakes operated by Navigazione Laghi. The list_ports endpoint returns all landing stages for a given lake with their numeric IDs, while search_connections returns scheduled connections between two ports on a chosen date, including per-leg trip numbers, intermediate stops, duration in minutes, and service notes.

This call costs10 credits / call— charged only on success
Try it
Which lake's ports to list.
→ api.parse.bot/scraper/e61cac40-ab72-458b-87ee-64353b0af233/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/e61cac40-ab72-458b-87ee-64353b0af233/list_ports?lake=lago-garda' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace navigazionelaghi-it-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: NavigazioneLaghi SDK — list ports, search connections, inspect legs."""
from parse_apis.navigazionelaghi_it_api import NavigazioneLaghi, Lake, InputFormatInvalid

client = NavigazioneLaghi()

# List all ports on Lake Garda to discover port IDs.
ports = client.ports.list(lake=Lake.GARDA, limit=50).list()
for port in ports[:5]:
    print(port.port_id, port.name)

# Pick the first two ports as departure / arrival for a connection search.
departure = ports[0]
arrival = ports[1]

try:
    schedule = client.schedules.search(
        date="2026-07-15",
        from_port_id=departure.port_id,
        to_port_id=arrival.port_id,
        lake=Lake.GARDA,
    )
except InputFormatInvalid as e:
    # Raised when a parameter value is malformed (bad date, unknown port id).
    print(f"Invalid input: {e.message}")
    raise

print(f"{schedule.date}  {schedule.from_port_id} → {schedule.to_port_id}  "
      f"full_day={schedule.full_day}  total={schedule.total_connections}")

if schedule.connections:
    # Inspect the fastest connection's legs and intermediate stops.
    conn = schedule.connections[0]
    print(f"  depart {conn.departure_time}  arrive {conn.arrival_time}  "
          f"{conn.duration_minutes}min  changes={conn.changes}")
    for leg in conn.legs:
        print(f"    trip {leg.trip_number}: {leg.from_port} → {leg.to_port}  "
              f"bicycles={leg.bicycles}  wheelchair={leg.wheelchair_recommended}")
        for stop in leg.stops:
            print(f"      stop {stop.port}  arr={stop.arrival_time}  dep={stop.departure_time}")

print("exercised: ports.list / schedules.search / Connection / Leg / Stop")
All endpoints · 2 totalmissing one? ·

Returns the ports (landing stages) of one lake as shown in the site's journey-search form, each with the numeric port_id that search_connections takes as from_port_id / to_port_id. One round trip; the list is small (about 30 ports per lake) and never empty.

Input
ParamTypeDescription
lakestringWhich lake's ports to list.
Response
{
  "type": "object",
  "fields": {
    "lake": "lake code the ports belong to",
    "ports": "array of {port_id (string, use as from_port_id/to_port_id), name (display name)}"
  },
  "sample": {
    "data": {
      "lake": "lago-garda",
      "ports": [
        {
          "name": "Desenzano",
          "port_id": "51"
        },
        {
          "name": "Lazise",
          "port_id": "56"
        },
        {
          "name": "Peschiera",
          "port_id": "52"
        },
        {
          "name": "Sirmione",
          "port_id": "53"
        }
      ]
    },
    "status": "success"
  }
}

About the Navigazione Laghi API

What the API covers

Navigazione Laghi operates the public ferry and hydrofoil services on Lake Maggiore, Lake Garda, and Lake Como. This API exposes the same journey-search data available through the site's journey planner. Two endpoints cover the full lookup workflow: retrieve the port list for a lake, then search connections between any two ports on a specific travel date.

list_ports — port directory per lake

Pass a lake string to get an array of port objects, each containing a port_id (numeric string) and a human-readable name. These IDs are the required inputs for search_connections. The list is small — around 30 ports per lake — and reflects the current set of active landing stages.

search_connections — scheduled connections

Required inputs are date (ISO format YYYY-MM-DD), from_port_id, and to_port_id. Optional filters include departure_time (earliest departure as HH:MM, which scopes results to an 8-hour window from that time), no_change (direct connections only), fast_service (includes servizio rapido trips, which carry a surcharge and have been verified to add results on Lake Garda), and vehicles (veicoli al seguito, for vehicle-carrying services). When departure_time is omitted the API assembles three consecutive 8-hour windows into a full-day view, indicated by the full_day: true flag in the response. Each connection in the connections array includes departure_time, arrival_time, duration_minutes, changes, and a legs array. Individual legs carry a trip number, stops, and service notes. The no_solutions_notice flag is set to true when the journey planner found no results for the query.

Coverage and freshness

The API reflects the timetable published for the current operating season. Navigazione Laghi updates schedules seasonally, so results for dates outside the published season may return no solutions. Coverage is limited to the three lakes the operator serves; services on other Italian lakes are not included.

Reliability & maintenanceVerified

The Navigazione Laghi API is a managed, monitored endpoint for navigazionelaghi.it — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when navigazionelaghi.it changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official navigazionelaghi.it API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a trip-planning widget showing all ferry departures between two Lake Garda ports on a given date.
  • Alert travellers when direct (no_change) connections exist between specific Lake Como ports.
  • Filter for fast-service (servizio rapido) connections on Lake Garda to surface quicker crossing options.
  • Display a port selector for Lake Maggiore by pulling the full port list with list_ports.
  • Check whether vehicle-carrying ferry connections exist between two ports on a chosen date.
  • Aggregate connection counts and average durations across the day for a lake crossing comparison tool.
  • Integrate scheduled departure times into a broader Italian transport itinerary combining trains and boats.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Navigazione Laghi provide an official developer API?+
Navigazione Laghi does not publish a documented public developer API. The journey-planner data is only available through the tools on navigazionelaghi.it.
What does `full_day` mean in the `search_connections` response?+
When you omit departure_time, the API queries three consecutive 8-hour windows and merges the results into a single list sorted by departure time. In that case full_day is set to true and departure_time_from is null. If you supply a departure_time, results are scoped to the single 8-hour window starting at that time, full_day is false, and departure_time_from reflects your input.
What is the `no_solutions_notice` flag and when does it appear?+
It is set to true when the journey planner reports no connections for your query — for example, a route that doesn't operate on the requested date, a port pair with no direct or connecting service, or a date outside the published seasonal timetable. The connections array will be empty in that case.
Does the API return fare or ticket prices for connections?+
Not currently. The API returns schedule data: departure and arrival times, duration, number of changes, leg-level trip numbers, and service notes. Pricing information is not part of the response. You can fork this API on Parse and revise it to add a fare-lookup endpoint if that data becomes accessible.
Are real-time departures or live vessel positions available?+
The API returns scheduled timetable data only; it does not include real-time departure status or vessel tracking. Live disruption notices and delays are not exposed in any response field. You can fork this API on Parse and revise it to add a real-time status endpoint if Navigazione Laghi surfaces that data.
Page content last updated . Spec covers 2 endpoints from navigazionelaghi.it.
Related APIs in TravelSee all →
italoinviaggio.italotreno.com API
Search Italo train stations and check real-time departure and arrival information to plan your journey across the Italo network. Stay updated with live train schedules to never miss your connections.
flightconnections.com API
Search for flights with detailed information about pricing, schedules, and layover options to find the best travel connections for your trips. Compare multiple flight choices and their costs in one convenient search.
italotreno.com API
italotreno.com API
portofrotterdam.com API
Track live vessel movements and monitor port performance metrics including container throughput and anchorage statistics for the Port of Rotterdam. Access nautical notices and search detailed port information to stay updated on shipping operations and port conditions.
nsinternational.nl API
Access data from nsinternational.nl.
rfi.it API
Check real-time train schedules and station information across Italy's railway network, search for stations, and get live alerts about delays and service disruptions. Monitor train circulation status and access detailed station mappings to plan your journeys efficiently.
trenitalia.com API
Search for trains across Italy, check real-time train status and delays, view station departure and arrival boards, and find available tickets all in one place. Get live traffic information and detailed train itineraries to plan your journey with complete visibility into schedules and service disruptions.
marinetraffic.com API
Track maritime vessels in real-time by searching for ships by name, MMSI, or IMO number, viewing their current positions and navigational status, and accessing detailed specifications and photos. Filter vessels by type to get the maritime intelligence you need for shipping, logistics, or maritime awareness.