live · Travel & Booking · JSON · API for agents
Search available yacht charters on the Masurian Lakes (Mazury). Filter by city/port, dates, category, number of people and max daily price. Returns up to 8 matching yachts with a 'from' price and whether each is free in the given date range. Use this first to find candidates, then quote_charter for an exact price.
{
"name": "search_charters",
"kind": "read",
"impl": "imperative",
"description": "Search available yacht charters on the Masurian Lakes (Mazury). Filter by city/port, dates, category, number of people and max daily price. Returns up to 8 matching yachts with a 'from' price and whether each is free in the given date range. Use this first to find candidates, then quote_charter for an exact price.",
"inputSchema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City or port name, e.g. 'Giżycko', 'Mikołajki'"
},
"from": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Charter start date, format YYYY-MM-DD"
},
"to": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Charter end date, format YYYY-MM-DD"
},
"category": {
"type": "string",
"enum": [
"sailing",
"motor",
"houseboat",
"scooter"
],
"description": "Yacht category"
},
"minPeople": {
"type": "integer",
"minimum": 1,
"description": "Minimum berths/people required"
},
"priceMax": {
"type": "number",
"minimum": 0,
"description": "Maximum price per day (PLN)"
},
"page": {
"type": "integer",
"minimum": 0,
"description": "Result page, 0-based"
}
},
"required": [],
"additionalProperties": false
},
"page": "/"
}Get the authoritative, server-computed price and availability for one yacht and exact dates. Returns whether the dates are available, the number of days, the charter price payable online, the mandatory fees paid on-site, the total and the currency — or a reason the dates cannot be booked (min/max stay, week-only, taken). Prices cannot be spoofed; this is the source of truth.
{
"name": "quote_charter",
"kind": "action",
"impl": "imperative",
"description": "Get the authoritative, server-computed price and availability for one yacht and exact dates. Returns whether the dates are available, the number of days, the charter price payable online, the mandatory fees paid on-site, the total and the currency — or a reason the dates cannot be booked (min/max stay, week-only, taken). Prices cannot be spoofed; this is the source of truth.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"minLength": 1,
"description": "Yacht slug from search_charters"
},
"from": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date YYYY-MM-DD"
},
"to": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End date YYYY-MM-DD"
},
"oneWay": {
"type": "boolean",
"description": "Return the yacht at a different port (adds the one-way fee)"
}
},
"required": [
"slug",
"from",
"to"
],
"additionalProperties": false
},
"page": "/"
}Get the specification and stay rules of one yacht: model, year, berths/people, length, engine power, home port, whether it can be rented without a sailing licence or with a skipper, and min/max stay. Does not include price — use quote_charter for the exact price.
{
"name": "get_charter_details",
"kind": "read",
"impl": "imperative",
"description": "Get the specification and stay rules of one yacht: model, year, berths/people, length, engine power, home port, whether it can be rented without a sailing licence or with a skipper, and min/max stay. Does not include price — use quote_charter for the exact price.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"minLength": 1,
"description": "Yacht slug from search_charters"
}
},
"required": [
"slug"
],
"additionalProperties": false
},
"page": "/"
}Create a provisional (unpaid, PENDING) reservation that holds the dates, and return a secure payment link. The customer completes payment themselves at the returned checkoutUrl — this tool never charges. You MUST first obtain the customer's explicit consent to the booking and cancellation terms and pass agreementAccepted=true. Collect first name, last name, email and phone. If booking is not possible, a bookingUrl to finish manually on the site is returned.
{
"name": "book_charter",
"kind": "action",
"impl": "imperative",
"description": "Create a provisional (unpaid, PENDING) reservation that holds the dates, and return a secure payment link. The customer completes payment themselves at the returned checkoutUrl — this tool never charges. You MUST first obtain the customer's explicit consent to the booking and cancellation terms and pass agreementAccepted=true. Collect first name, last name, email and phone. If booking is not possible, a bookingUrl to finish manually on the site is returned.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"minLength": 1,
"description": "Yacht slug from search_charters"
},
"from": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date YYYY-MM-DD"
},
"to": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End date YYYY-MM-DD"
},
"firstName": {
"type": "string",
"minLength": 2
},
"lastName": {
"type": "string",
"minLength": 2
},
"email": {
"type": "string",
"format": "email",
"description": "Customer email (booking confirmation + payment link)"
},
"phone": {
"type": "string",
"pattern": "^[+()0-9 .\\-]{9,}$",
"minLength": 9,
"description": "Customer phone, at least 9 digits"
},
"agreementAccepted": {
"type": "boolean",
"const": true,
"description": "Must be true — the customer accepts the booking & cancellation terms"
},
"oneWay": {
"type": "boolean"
},
"paymentProvider": {
"type": "string",
"enum": [
"payu",
"stripe"
],
"description": "Payment gateway (default payu)"
}
},
"required": [
"slug",
"from",
"to",
"firstName",
"lastName",
"email",
"phone",
"agreementAccepted"
],
"additionalProperties": false
},
"page": "/"
}