# Direct Ferries Route & Fare Scraper (`crawlerbros/direct-ferries-route-fare-scraper`) Actor

Compare ferry routes, crossing durations, indicative fares, and operators across P\&O Ferries, DFDS, Irish Ferries, Stena Line, Brittany Ferries and 300+ operators worldwide, scraped from directferries.com.

- **URL**: https://apify.com/crawlerbros/direct-ferries-route-fare-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Travel, Automation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Direct Ferries Route & Fare Scraper

Scrape **Direct Ferries** (directferries.com) — a ferry comparison site covering
300+ operators worldwide, including P&O Ferries, DFDS Seaways, Irish Ferries, Stena
Line, and Brittany Ferries. Get crossing duration, indicative average fare, distance,
and which operators run a given route, or browse every route a port or operator
serves. HTTP-only. No auth, no proxy, no login required.

### What this actor does

- **Three modes:** look up a specific route by origin/destination port, browse every
  route a ferry operator runs, or browse every outbound route from a port
- **Route detail:** crossing duration, indicative average price, distance in
  nautical miles, and whether foot passengers / cars / pets are permitted
- **300+ operators** covered, from major cross-Channel lines to regional and
  island ferry services worldwide
- **Unicode-friendly** port names — accented input (e.g. `Málaga`, `Møn`) is
  automatically normalized to match Direct Ferries' URL scheme
- **Empty fields are omitted** — you never have to defend against `null`

### Output: per route (mode = `byRoute`)

- `routeName` — e.g. `"Calais - Dover"`
- `originPort`, `destinationPort`
- `description`
- `crossingDurationText`, `crossingDurationMinutes`
- `averagePriceText`, `averagePriceAmount`, `averagePriceCurrency`
- `distanceNauticalMiles`
- `footPassengerAllowed`, `carAllowed`, `petsAllowed`
- `operators[]`, `operatorSlugs[]` — every operator running this route
- `region` — geographic breadcrumb, e.g. `"Europe > England > Dover"`
- `sourceUrl`
- `recordType: "route"`, `scrapedAt`

### Output: per route from a port (mode = `byPort`)

- `portName`, `routeName`
- `operators[]`, `operatorSlugs[]`
- `routeUrl` — link to the full route detail page
- `recordType: "portRoute"`, `scrapedAt`

### Output: per route for an operator (mode = `byOperator`)

- `operatorSlug`, `operatorName`
- `portFrom`, `portFromCountry`, `portTo`, `portToCountry`
- `routeName`, `routeUrl`
- `recordType: "operatorRoute"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `byRoute` | `byRoute` / `byOperator` / `byPort` |
| `originPort` | string | `Calais` | Departure port (mode=byRoute) |
| `destinationPort` | string | `Dover` | Arrival port (mode=byRoute) |
| `portName` | string | `Dover` | Port to list outbound routes from (mode=byPort) |
| `operatorSlug` | string | `poferries` | Ferry operator to list routes for (mode=byOperator) — one of 300+ operators |
| `maxItems` | int | `50` | Hard cap on emitted records (1–1000) |

#### Example: check the Calais-Dover crossing

```json
{
  "mode": "byRoute",
  "originPort": "Calais",
  "destinationPort": "Dover"
}
````

#### Example: every route P\&O Ferries operates

```json
{
  "mode": "byOperator",
  "operatorSlug": "poferries"
}
```

#### Example: every route out of Piraeus

```json
{
  "mode": "byPort",
  "portName": "Piraeus",
  "maxItems": 100
}
```

#### Example: a Spanish/accented port name

```json
{
  "mode": "byRoute",
  "originPort": "Málaga",
  "destinationPort": "Melilla"
}
```

### Use cases

- **Travel comparison sites** — pull live crossing durations and indicative fares
  instead of manually checking each operator
- **Trip planners** — check which operators serve a route before booking directly
- **Logistics/freight researchers** — identify crossing frequency and duration for
  routes relevant to cargo planning
- **Travel bloggers** — source accurate route facts (distance, duration, pet/car
  policy) for destination guides
- **Price trackers** — capture Direct Ferries' published average fare over time

### FAQ

**What is the data source?**
All data comes from the public pages of [directferries.com](https://www.directferries.com).
This actor is an independent third-party scraper and is not affiliated with Direct
Ferries.

**Are the prices exact fares?**
No — `averagePriceAmount` reflects Direct Ferries' published *indicative average*
price for the route (excluding booking fees), not a live, date-specific quote. For
exact fares on specific dates, use Direct Ferries' own booking flow.

**Why isn't there a travel-date filter?**
Direct Ferries' date-specific sailing times and fares are loaded through an
interactive booking widget, not published in the static route page. This actor
exposes what is reliably available without a browser: crossing duration, indicative
average fare, distance, and the operators serving each route. Date-specific
schedules are a known limitation of the static-HTML data source.

**Why do `byPort` and `byOperator` modes not include duration or price?**
Those modes read the lightweight route-index tables on port and operator pages,
which list routes and serving operators but not per-route duration/fare detail. Use
`byRoute` mode with the specific origin/destination to get full route detail.

**What if my port name doesn't match a Direct Ferries route?**
The actor normalizes common variations (accents, spacing, punctuation) into Direct
Ferries' URL slug format, but only routes Direct Ferries actually publishes will
return data. If a route returns no records, Direct Ferries likely doesn't cover
that origin/destination pair.

**Does this cost extra for proxy or authentication?**
No. The actor uses Apify's free `AUTO` proxy group and requires no login, cookies,
or API keys.

# Actor input Schema

## `mode` (type: `string`):

What to fetch.

## `originPort` (type: `string`):

Departure port name, e.g. `Calais`, `Dover`, `Santander`.

## `destinationPort` (type: `string`):

Arrival port name, e.g. `Dover`, `Portsmouth`, `Plymouth`.

## `portName` (type: `string`):

Port to list all outbound ferry routes from, e.g. `Dover`, `Calais`, `Piraeus`.

## `operatorSlug` (type: `string`):

Ferry operator to list routes for.

## `maxItems` (type: `integer`):

Hard cap on emitted records.

## Actor input object example

```json
{
  "mode": "byRoute",
  "originPort": "Calais",
  "destinationPort": "Dover",
  "portName": "Dover",
  "operatorSlug": "poferries",
  "maxItems": 50
}
```

# Actor output Schema

## `routes` (type: `string`):

Dataset containing all scraped Direct Ferries route records.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "byRoute",
    "originPort": "Calais",
    "destinationPort": "Dover",
    "portName": "Dover",
    "operatorSlug": "poferries",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/direct-ferries-route-fare-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "byRoute",
    "originPort": "Calais",
    "destinationPort": "Dover",
    "portName": "Dover",
    "operatorSlug": "poferries",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/direct-ferries-route-fare-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "byRoute",
  "originPort": "Calais",
  "destinationPort": "Dover",
  "portName": "Dover",
  "operatorSlug": "poferries",
  "maxItems": 50
}' |
apify call crawlerbros/direct-ferries-route-fare-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/direct-ferries-route-fare-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Direct Ferries Route & Fare Scraper",
        "description": "Compare ferry routes, crossing durations, indicative fares, and operators across P&O Ferries, DFDS, Irish Ferries, Stena Line, Brittany Ferries and 300+ operators worldwide, scraped from directferries.com.",
        "version": "1.0",
        "x-build-id": "i1Upac79hz4IwXGxb"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~direct-ferries-route-fare-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-direct-ferries-route-fare-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~direct-ferries-route-fare-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-direct-ferries-route-fare-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~direct-ferries-route-fare-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-direct-ferries-route-fare-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "byRoute",
                            "byOperator",
                            "byPort"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "byRoute"
                    },
                    "originPort": {
                        "title": "Origin port (mode=byRoute)",
                        "type": "string",
                        "description": "Departure port name, e.g. `Calais`, `Dover`, `Santander`.",
                        "default": "Calais"
                    },
                    "destinationPort": {
                        "title": "Destination port (mode=byRoute)",
                        "type": "string",
                        "description": "Arrival port name, e.g. `Dover`, `Portsmouth`, `Plymouth`.",
                        "default": "Dover"
                    },
                    "portName": {
                        "title": "Port (mode=byPort)",
                        "type": "string",
                        "description": "Port to list all outbound ferry routes from, e.g. `Dover`, `Calais`, `Piraeus`.",
                        "default": "Dover"
                    },
                    "operatorSlug": {
                        "title": "Operator (mode=byOperator)",
                        "enum": [
                            "2go_travel",
                            "a_ships_management_sa",
                            "adria_ferries",
                            "aegean_flying_dolphins",
                            "aegean_sea_lines",
                            "aegean_speed_lines",
                            "aegina_ferries",
                            "agoudimos_lines",
                            "akgunler_denizcilik",
                            "al_ameen_boat_services",
                            "albania_luxury_ferries",
                            "algerie_ferries",
                            "alicost",
                            "alilauro",
                            "alilauro_gruson",
                            "alko_ferries",
                            "alpha_lines",
                            "aml",
                            "andaman_wave_master",
                            "anek_superfast",
                            "anem_ferries",
                            "anes_ferries",
                            "aquabus",
                            "aremiti",
                            "arjuna_fast_cruise",
                            "arthamas_express",
                            "atlanticoline",
                            "awesome_adventures_fiji",
                            "babou_one",
                            "bahamas_ferries",
                            "baja_ferries",
                            "balearia",
                            "balearia_caribbean",
                            "bali_eka_jaya",
                            "barangaroo_fast_ferry",
                            "barcos_caribe",
                            "batam_fast_ferry",
                            "bintan_resort_ferries",
                            "biosfera_express",
                            "blu_navy",
                            "blue_sea_jet",
                            "blue_star_ferries",
                            "bluebridge",
                            "blueline",
                            "bluemar_ferries",
                            "bluewater_express",
                            "boonsiri_high_speed_ferries",
                            "boston_harbor_cruises",
                            "breizhgo_oceane",
                            "brittany",
                            "bundhaya_speed_boat",
                            "buquebus",
                            "buva_sea_cambodia",
                            "camellia_line",
                            "cape_may_lewes_ferry",
                            "captain_john_boats",
                            "caremar",
                            "caribbean_sprinter",
                            "caronte_tourist",
                            "cataferry",
                            "catalina_express",
                            "catalina_flyer",
                            "chaokoh_ferry",
                            "chureang_travel_and_tour",
                            "colonia_express",
                            "color_line",
                            "comatrile",
                            "conocemos_navegando",
                            "consorzio_vidali_group",
                            "corsica_ferries",
                            "corsica_linea",
                            "cotai_water_jet",
                            "cruce_del_golfo",
                            "cruise_whitsundays",
                            "ctm_deher",
                            "ctn_ferries",
                            "cyclades_fast_ferries",
                            "d_stars_fast_ferry",
                            "dain_ferry",
                            "dbs_cruise_ferry",
                            "dcamel_fast_ferry",
                            "dentur_avrasya",
                            "destination_gotland",
                            "dfds",
                            "dodekanisos_seaways",
                            "dolphin_fast_ferry",
                            "eckero_line",
                            "eckero_linjen",
                            "elbferry",
                            "erturk_lines",
                            "exas_shipping_services",
                            "express_bahari",
                            "ferjuleidir",
                            "ferry_isla_de_lobos",
                            "ferry_las_perlas",
                            "finikas_lines",
                            "finnlines",
                            "fjordline",
                            "formentera_lines",
                            "fred_olsen_express",
                            "frs",
                            "frs_baltic",
                            "frs_caribbean",
                            "gili_getaway",
                            "gili_gili_fast_boat",
                            "golden_queen_fast_boat",
                            "golden_star_ferries",
                            "gomo_viaggi",
                            "gozo_highspeed",
                            "grandi_navi_veloci",
                            "grassi_junior",
                            "great_bay_express",
                            "greenlines_dp",
                            "grimaldi_ferries",
                            "gs_travel",
                            "hanil_express",
                            "hankyu_ferry",
                            "hansa_destinations",
                            "helgoline",
                            "high_jet",
                            "horizon_fast_ferry",
                            "hovertravel",
                            "hy_line_cruises",
                            "ichnusa_lines",
                            "ido",
                            "inter_shipping",
                            "interislander",
                            "ionian_seaways",
                            "ippocampo",
                            "irish",
                            "iscomar",
                            "ishigaki_dream_tours",
                            "island_queen",
                            "island_speed_ferry",
                            "islands_unlimited",
                            "isles_of_scilly_travel",
                            "jadrolinija",
                            "jomalia_shipping",
                            "joy_cruises",
                            "joy_lines",
                            "jumbo_ferry",
                            "kamelia_lines",
                            "kansai_orange_ferry",
                            "kefalonian_lines",
                            "kerkyra_lines",
                            "kerkyra_seaways",
                            "kompas",
                            "kume_line",
                            "kyushi_orange_ferry",
                            "cmn_la_meridionale",
                            "lafasi",
                            "langkawi_ferry_services",
                            "laser_capri",
                            "ld_lines_ferries",
                            "lefkada_palace",
                            "eurotunnel",
                            "levante_ferries",
                            "leve_ferries",
                            "liberty_lines",
                            "lineas_maritimas_romero",
                            "lomlahkkhirin",
                            "lomprayah_high_speed_ferries",
                            "lyg_ferry",
                            "lexpress_des_iles",
                            "maddalena_lines",
                            "magic_sea_ferries",
                            "majestic_fast_ferry",
                            "makri_travel",
                            "manche_iles_express",
                            "mandarin_cruises",
                            "mantoudi_lines",
                            "mar_de_ons",
                            "marina_group",
                            "marina_srikandi",
                            "marlin_fast_boat",
                            "marue_ferry",
                            "maruti_group_fast_boat",
                            "meander_travel",
                            "medmar",
                            "meimon_taiyo_ferry",
                            "menorca_lines",
                            "mieha_holiday_travel",
                            "minoan_lines",
                            "moby_lines",
                            "mol_ferry",
                            "montenegro_lines",
                            "ms_ferry",
                            "namhae_gosok_ferry",
                            "nankai_ferry",
                            "national_ferries_company",
                            "navi_tremiti",
                            "naviera_armas",
                            "naviera_nabia",
                            "naviera_nortour",
                            "nlg",
                            "norled",
                            "ocean_ferry_belize",
                            "poferries",
                            "poirishsea",
                            "panstar_cruise",
                            "pentland_ferries",
                            "perhentian_boat_services",
                            "perhentian_sunny_travel",
                            "phi_phi_cruiser",
                            "ploysiam_speedboat",
                            "polferries",
                            "polsca_baltic_ferries",
                            "pontina_navigazione",
                            "porto_santo_line",
                            "positano_jet",
                            "primero_express",
                            "pukwan_ferry",
                            "raja_ferry",
                            "red_funnel",
                            "remezzo_maritime_company",
                            "rocky_fast_cruise",
                            "rottnest_express",
                            "rottnest_fast_ferries",
                            "rodne_fjord_cruise",
                            "s_gening_fast_boat",
                            "sado_kisen",
                            "safe_way_maritime",
                            "said_bonaza_express",
                            "san_lorenzo_ferries",
                            "sant_andrea",
                            "saos_ferries",
                            "saronic_ferries",
                            "satun_pakbara_speed_boat_club",
                            "scandlines_ferries",
                            "scoot_fast_cruises",
                            "sea_dreams",
                            "sea_las_perlas",
                            "sea_spica_shimatabi_cruise",
                            "sea_s_young",
                            "seajets",
                            "sealink_kangaroo_island",
                            "sealink_northern_territory",
                            "sealink_nz",
                            "sealink_queensland",
                            "sealink_rottnest",
                            "seatours",
                            "seatran_discovery",
                            "seatran_ferry",
                            "seaworld_express_ferry",
                            "sebeco_lines",
                            "semaya_one_fast_cruise",
                            "seremar",
                            "setonaikai_kisen",
                            "seudamgo",
                            "shin_nihonkai_ferry",
                            "sindo_ferry",
                            "singapore_island_cruise",
                            "siremar",
                            "sky_marine",
                            "small_cyclades_lines",
                            "snav",
                            "songserm",
                            "south_sea_cruises",
                            "sporades_lines",
                            "st_peter_line",
                            "starfish_fast_cruise",
                            "starlines",
                            "iom",
                            "stena",
                            "stewart_island_experience",
                            "stradbroke_ferries",
                            "sugriwa_express",
                            "superfast_ferries",
                            "tallink_silja",
                            "tane_yaku_jetfoil",
                            "the_angkal_fast_cruise",
                            "the_tanis_fast_cruise",
                            "tigerline_ferry",
                            "tirrenia",
                            "tokai_kisen",
                            "tokyo_kyusyu_ferry",
                            "toremar",
                            "torre_lines",
                            "tp_line",
                            "transtabarca",
                            "trasmapi",
                            "trasmed_gle",
                            "trasmediterranea",
                            "travelmar",
                            "trieste_lines",
                            "triton_ferries",
                            "tsugarukaikyo_ferry",
                            "tt_line",
                            "ttt_lines",
                            "tuana_maritime",
                            "turbojet",
                            "turyol",
                            "twin_city_liner",
                            "ultramar",
                            "unity_line",
                            "uwajima_unyu_ferries",
                            "v2v_vacations",
                            "ventouris_ferries",
                            "vigourmarine",
                            "viking_line",
                            "virtu_ferries",
                            "voyager",
                            "wahana_virendra",
                            "wanderlust_cruise",
                            "wasaline",
                            "wightlink",
                            "wijaya_perkasa",
                            "yaeyama_kanko_ferry",
                            "yingkou_ferry",
                            "zan_fast_ferries"
                        ],
                        "type": "string",
                        "description": "Ferry operator to list routes for.",
                        "default": "poferries"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on emitted records.",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
