elladetraghetti APIelladetraghetti.it ↗
Search Greek ferry sailings, ticket prices, schedules, and port codes via the elladetraghetti.it API. Two endpoints cover port lookup and fare quoting.
What is the elladetraghetti API?
The elladetraghetti.it API exposes two endpoints for querying ferry sailings and fares on the Italian-language ferry booking site elladetraghetti.it. The list_ports endpoint returns a catalogue of roughly 370 departure ports and their reachable arrival ports, while search_ferry_prices returns per-sailing totals in EUR broken down by accommodation type (deck, seat, cabin) for a given passenger count, vehicle, and travel date.
curl -X GET 'https://api.parse.bot/scraper/7cbb6dd8-1b9c-46b4-9d5c-4972b350294d/list_ports' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns the ferry port catalogue as {port_code, name} rows (name is the Italian label with the country in parentheses, one shape: 'Bari (ITALIA)'). Without departure_port it returns every departure port the site offers (about 370, including '*_AREA' codes that group all ports of an island). With departure_port it returns only the arrival ports reachable from that port, so a search can be built from one list_ports call per leg. Single cheap request, no pagination. An unknown departure_port yields an empty list.
| Param | Type | Description |
|---|---|---|
| departure_port | string | Port code from list_ports.ports[*].port_code (e.g. one shape: BRI). When given, the result is the set of arrival ports reachable from this departure port; when omitted, all departure ports are listed. |
{
"type": "object",
"fields": {
"ports": "array of {port_code: site port code used by search_ferry_prices, name: Italian port label with country}",
"total": "integer count of ports returned",
"departure_port": "the departure_port filter that was applied, or null when listing all departure ports"
},
"sample": {
"data": {
"ports": [
{
"name": "Corfu (GRECIA)",
"port_code": "CFU"
},
{
"name": "Durazzo (ALBANIA)",
"port_code": "DUE"
},
{
"name": "Patrasso (GRECIA)",
"port_code": "GPA"
}
],
"total": 8,
"departure_port": "BRI"
},
"status": "success"
}
}About the elladetraghetti API
Port Catalogue
The list_ports endpoint returns an array of {port_code, name} objects where name is the Italian label with the country in parentheses — for example, Bari (ITALIA). Called without parameters it yields all departure ports the site offers, roughly 370 entries, including *_AREA codes that group multiple ports of a region. Pass a departure_port code (e.g. BRI for Bari) to narrow the result to only the arrival ports reachable from that departure. The response always echoes departure_port (or null) and a total integer.
Sailing Search and Fare Quoting
search_ferry_prices requires departure_port, arrival_port, and departure_date (ISO YYYY-MM-DD). Optional parameters include passengers (1–9), passenger_ages as a comma-separated string (e.g. 45,10) which the endpoint uses to apply age-band pricing, vehicle_type to add a vehicle fare, and vehicle_width in metres for size-sensitive pricing. Add return_date for a round-trip search; the response then populates both outbound and inbound objects, each containing sailings, sailings_total, sailings_quoted, and nearby_dates_with_sailings.
Sailing Response Shape
Each sailing record inside outbound.sailings or inbound.sailings carries the ferry company, vessel name, departure and arrival dates and times, crossing duration, garage availability flag, and a quoted total price in EUR (currency: "EUR") for the entire party. Prices are broken out by accommodation type — deck, seat, or cabin — so callers can compare fare classes directly. The response also echoes the searched departure_port, arrival_port, departure_date, vehicle_type, and passenger_ages array for easy correlation.
Coverage Notes
The site focuses on ferry routes to and from Greece and Adriatic/Mediterranean ports. The *_AREA port codes let you search from a region rather than a single terminal. All monetary values are returned in EUR regardless of the passenger's locale.
The elladetraghetti API is a managed, monitored endpoint for elladetraghetti.it — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when elladetraghetti.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 elladetraghetti.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a fare-comparison dashboard for Adriatic and Aegean ferry routes using
search_ferry_pricesprice breakdowns by accommodation type - Populate a port selector dropdown by calling
list_portswith adeparture_portto show only reachable destinations - Find the cheapest travel date by querying
nearby_dates_with_sailingsfrom the outbound response object - Quote round-trip ferry costs for a car and two adults by supplying
vehicle_type,passengers: 2, and areturn_date - Monitor seasonal price changes on a specific route by scheduling daily calls to
search_ferry_pricesand loggingprice_eurvalues - Validate port codes programmatically by cross-referencing user input against the full
list_portscatalogue of ~370 entries - Calculate total travel costs including vehicle width surcharges by passing
vehicle_widthalongsidevehicle_type
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.
Does elladetraghetti.it offer an official developer API?+
What does `list_ports` return when called with no parameters versus with a `departure_port`?+
*_AREA codes — along with a total count and departure_port: null. When you supply a departure_port code such as BRI, the response narrows to only the arrival ports reachable from that departure, and departure_port echoes back the code you passed.How are prices structured in the `search_ferry_prices` response?+
outbound.sailings or inbound.sailings returns a quoted total in EUR for the entire party, broken down by accommodation type: deck, seat, and cabin. The total already includes any vehicle fare when vehicle_type is supplied. The currency field in the top-level response confirms the denomination is always EUR.