Public
API

Islandview Harbour · 1087 Islandview Dr, Bailieboro, ON K9J 6X8
No key · No sign-up · Read only

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.

StatusMeans
200The catalogue.
503The 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.

ParameterTypeRequiredMeaning
item_idstringyesThe id of a unit from /rentals/catalog.
daysinteger 1–60noLength of a day or half-day booking. Required unless hours is given.
hoursinteger 1–24noLength of an hourly booking. Makes this an hourly quote; the unit must offer hourly and meet its own minimum.
slotam | pmnoHalf-day window. Only with days, and only where the unit offers half days.
startstring (date)noFirst day of the booking, YYYY-MM-DD. Decides which weekend, season and holiday factors apply.
StatusMeans
200A quote. priced: false means the pricing factors could not be read — it does not mean the rental is free.
400The selection is not one this unit offers, or the parameters contradict each other.
404No 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.

ParameterTypeRequiredMeaning
item_idstringyesThe id of a unit from /rentals/catalog.
fromstring (date)yesWindow start, YYYY-MM-DD.
tostring (date)yesWindow end, YYYY-MM-DD. Must be later than from.
StatusMeans
200The booked spans.
400Missing or malformed window.
503Availability 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.

ParameterTypeRequiredMeaning
fromstring (date)yesWindow start, YYYY-MM-DD.
tostring (date)yesWindow end, YYYY-MM-DD. Must be later than from.
StatusMeans
200Booked spans across the fleet, with the half-day windows.
400Missing or malformed window.
503Availability 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.

StatusMeans
200Dock 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.

ParameterTypeRequiredMeaning
typeboatslips | parking | summerstorageyesWhich offering to describe.
StatusMeans
200The state of that type — check curtained before reading any inventory.
400Unknown type, or a type this marina does not expose. The reply carries the types that ARE available.
503Slip 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.

StatusMeans
200Dock 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.

StatusMeans
200Current conditions.
503No reading is available and none is recent enough to serve.
Try it: https://islandview.club/api/weather