Everything below is public, read-only and needs no key. It is the same data the Islandview Harbour websites read, published so that software acting for a customer does not have to scrape a page to answer “what can I rent, what does it cost, and is it free on Saturday?”
These endpoints are described for machines too. The catalog at /.well-known/api-catalog follows RFC 9727 and points at an OpenAPI 3.1 description of each API.
Nothing here books anything or moves money. Quotes are real prices, not reservations — a boat you quote at nine is bookable by somebody else at ten. Enquiry and booking submission are deliberately outside this API: they write to the marina’s records, they are challenge-gated, and an unauthenticated write with a published body schema is a spam target. If you are building something that needs to book, talk to us first.
Islandview Rentals API
The rental fleet, what it costs, and when it is free.
Read-only access to the Islandview Harbour rental catalogue: every boat, jetski, paddlecraft and machine on offer, the live price for a given span, and the days each unit is already booked. These are the same endpoints the public rentals site calls, so what an agent reads here is exactly what a customer sees. Booking still happens through checkout — nothing in this API reserves anything or moves money.
- Base URL
https://rentals.islandview.club/api- OpenAPI
/openapi/rentals.json- Status
/api/status
GET /api/rentals/catalog
The whole public rental catalogue
Units, the categories they are grouped under, and the add-ons that can go out with them, in one response. Units that are out of service are still listed, with unavailable: true — the marina shows a customer the boat and the reason rather than letting a tile silently vanish. Cached briefly inside the Worker; treat it as a snapshot rather than a reservation.
No parameters.
| Status | Means |
|---|
200 | The catalogue. |
503 | The catalogue could not be read. Fails closed rather than serving a short list — an empty catalogue and an unreachable one are different facts. |
Try it: https://rentals.islandview.club/api/rentals/catalog
GET /api/rentals/quote
Price one unit over a chosen span
The live total, including any seasonal multiplier, weekend or holiday factor and active discount. This is not an estimate: it is the same function the cart and the checkout charge from, so the number here is the number that will be taken. Pass hours for an hourly quote, or days (optionally with slot) for a day or half-day one. hours together with slot is a confused request and answers 400.
| Parameter | Type | Required | Meaning |
|---|
item_id | string | yes | The id of a unit from /rentals/catalog. |
days | integer 1–60 | no | Length of a day or half-day booking. Required unless hours is given. |
hours | integer 1–24 | no | Length of an hourly booking. Makes this an hourly quote; the unit must offer hourly and meet its own minimum. |
slot | am | pm | no | Half-day window. Only with days, and only where the unit offers half days. |
start | string (date) | no | First day of the booking, YYYY-MM-DD. Decides which weekend, season and holiday factors apply. |
| Status | Means |
|---|
200 | A quote. priced: false means the pricing factors could not be read — it does not mean the rental is free. |
400 | The selection is not one this unit offers, or the parameters contradict each other. |
404 | No such unit. |
Try it: https://rentals.islandview.club/api/rentals/quote
GET /api/rentals/booked
Booked spans for one unit
Every non-cancelled booking overlapping the window, as start/end timestamps. Spans only — no customer, no booking id, no price. Knowing a boat is taken is what availability IS; knowing who took it is not.
| Parameter | Type | Required | Meaning |
|---|
item_id | string | yes | The id of a unit from /rentals/catalog. |
from | string (date) | yes | Window start, YYYY-MM-DD. |
to | string (date) | yes | Window end, YYYY-MM-DD. Must be later than from. |
| Status | Means |
|---|
200 | The booked spans. |
400 | Missing or malformed window. |
503 | Availability is unreadable right now. Fails closed — never an empty list. |
Try it: https://rentals.islandview.club/api/rentals/booked
GET /api/rentals/booked-all
Booked spans for every unit at once
The same answer as /rentals/booked for the whole fleet, plus the half-day windows so a caller classifies a part-booked day the same way the unit page does. One request rather than one per boat.
| Parameter | Type | Required | Meaning |
|---|
from | string (date) | yes | Window start, YYYY-MM-DD. |
to | string (date) | yes | Window end, YYYY-MM-DD. Must be later than from. |
| Status | Means |
|---|
200 | Booked spans across the fleet, with the half-day windows. |
400 | Missing or malformed window. |
503 | Availability is unreadable right now. |
Try it: https://rentals.islandview.club/api/rentals/booked-all
GET /api/status
Marina status — the health endpoint for this API
Today's dock hours and the fuel dock state. Named as the status link in the API catalog because it is the cheapest call that proves the Worker and its database read are both alive.
No parameters.
| Status | Means |
|---|
200 | Dock hours and fuel state. |
Try it: https://rentals.islandview.club/api/status
Islandview Marina API
Slips and storage, dock hours, and conditions on the water.
Read-only access to the marina itself: which slip and storage types are on offer and what is left, today's dock hours and fuel state, and current conditions on Rice Lake read from Environment and Climate Change Canada. Enquiries and bookings are deliberately not part of this API — see /api-docs for why.
- Base URL
https://islandview.club/api- OpenAPI
/openapi/marina.json- Status
/api/status
GET /api/slips/state
Availability for one slip or storage type
What is on offer for a given type, and what is left. A type the marina has not published answers 200 with curtained: true and no inventory at all — the page exists and a visitor is meant to see it, just without its contents, so there is deliberately no count of what is being withheld. A staff_placed page sends no grid and no count either: the marina decides placement, and publishing codes would invite a choice that is not on offer.
| Parameter | Type | Required | Meaning |
|---|
type | boatslips | parking | summerstorage | yes | Which offering to describe. |
| Status | Means |
|---|
200 | The state of that type — check curtained before reading any inventory. |
400 | Unknown type, or a type this marina does not expose. The reply carries the types that ARE available. |
503 | Slip data is temporarily unavailable. |
Try it: https://islandview.club/api/slips/state
GET /api/status
Today's dock hours and the fuel dock
Derived from the marina's own records rather than a hand-typed string. An UNCONFIGURED value is not a negative one — nobody having filled in the work roster does not mean the marina is shut — so an unknown falls back to a configured default rather than reporting closed.
No parameters.
| Status | Means |
|---|
200 | Dock hours and fuel state. |
Try it: https://islandview.club/api/status
GET /api/weather
Current conditions at the marina
Read from Environment and Climate Change Canada GeoMet for the station nearest the docks and cached for ten minutes. If the upstream is down, a recent reading is served with stale: true rather than nothing; past that grace it answers 503 rather than guessing.
No parameters.
| Status | Means |
|---|
200 | Current conditions. |
503 | No reading is available and none is recent enough to serve. |
Try it: https://islandview.club/api/weather