List Passages
List sailing passages between locations
Legacy — not maintained. Passages are a dormant data set generated in February 2026 and no longer updated. Many titles are generic ("Anchorage to Anchorage"), an embedded location name is often null, and some endpoints have since been merged into other locations without the geometry being recomputed. For passages boats were actually observed sailing, with measured times, use ais_passages on Get Location.
Endpoint
Description
List sailing passages (routes between two locations) with optional filtering by location and difficulty. Each passage includes distance, difficulty rating, and departure/arrival location details. Only passages whose departure and arrival locations are both published are returned.
Authentication
Send X-API-Key: YOUR_API_KEY on every call from outside charter.boats — without it Cloudflare bot protection answers with an HTML 403 page, not JSON. Call it from your server: this route sends no CORS headers. See Authentication.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
location_id | number | No | Filter passages that start or end at this location. Must be a positive integer — a value that is not answers 400 rather than silently dropping the filter and returning the whole list |
difficulty | string | No | Filter by difficulty level |
sort | string | No | Sort order: distance (default), rating, or variants |
limit | number | No | Max results (default: 50, max: 100) |
offset | number | No | Pagination offset (default: 0) |
Example Request
Example Response
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Route ID (UUID) |
from_location_id / to_location_id | number | Departure / arrival location IDs |
slug | string | URL-friendly slug |
title | string | Route title |
description | string|null | Route description |
distance_nm | number|null | Distance in nautical miles |
difficulty | string|null | Difficulty level |
typical_duration_hours | number|null | Estimated sailing time in hours |
rating | number|null | Average rating |
rating_count | number | Number of ratings (0 when none) |
variant_count | number|null | Number of route variants |
geojson | object|null | Route geometry as a GeoJSON Feature (geometry LineString + properties with distance_nm, waypoints, etc.) |
created_at / updated_at | string | Row timestamps |
from_location | object | Departure location (id, name, country_code, lat, lon). name is the stored name and can be null for an unnamed place |
to_location | object | Arrival location (same shape) |
In the list endpoint the embedded from_location / to_location carry only id, name, country_code, lat, and lon (no country, image_url, or harbour_category — those appear in Get Passage). country_code is lowercase.
Sort Options
| Value | Description |
|---|---|
distance | Shortest passages first (default) |
rating | Highest rated first |
variants | Most route variants first |