Mundi Czarter / developers
Mundi Czarter API
Public, read-only REST API: free sailing yachts and prices for a date range on the Masurian Lakes (Poland). Version 1. No API key, no sign-up.
Quickstart
Which yachts are free from 30 April to 4 May 2027 for at least 6 people, and at what price?
curl -s "https://mundiczarter.pl/api/v1/availability?from=2027-04-30&to=2027-05-04&bunks=6"
Response (shortened):
{
"ok": true,
"generatedAt": "2026-10-22T18:13:19Z",
"currency": "PLN",
"query": { "arrival": "2027-04-30", "departure": "2027-05-04", "nights": 4, "minBerths": 6, "type": null },
"count": 13,
"yachts": [
{
"name": "Antila 26cc - Anquilla",
"url": "https://mundiczarter.pl/yacht/czarter-antila-26cc-anquilla-mazury",
"berths": 8, "cabins": 3, "lengthM": 7.8, "depositPLN": 2000,
"arrival": "2027-04-30", "departure": "2027-05-04", "nights": 4,
"totalPricePLN": 2014, "originalPricePLN": 2120, "discountPercent": 5,
"pricePerNightPLN": 503.5, "shortenedStay": false,
"bookingUrl": "https://mundiczarter.pl/yacht/czarter-antila-26cc-anquilla-mazury?from=2027-04-30&to=2027-05-03"
}
],
"notes": ["..."]
}
The API never makes a reservation. Book through bookingUrl or by phone: +48 534 122 305.
Authentication, API keys and sandbox
There are no API keys and no accounts: every endpoint is public and read-only, so the production API is safe to test against and no separate sandbox is needed. Fair use is enforced by rate limiting (below).
Endpoint
GET /api/v1/availability (HEAD also supported). /api/availability is an unversioned alias of the current major version; use /api/v1/ for stability.
| Parameter | Required | Description |
|---|---|---|
from | yes | Arrival date (first night), YYYY-MM-DD. Not in the past, at most 548 days ahead. |
to | yes | Departure date (the day the yacht is returned), YYYY-MM-DD; 1 to 30 nights after from. |
bunks | no | Minimum number of berths, 1-20. |
type | no | Yacht model, e.g. Antila 27, Antila 26cc, Antila 28.2, Antila 30. |
Prices are guest prices in PLN including First Minute / Last Minute discounts, without coupons and optional fees. Season rules apply as on the website: in the main season (June-August) charters run Saturday to Saturday, and package periods such as the May long weekend are rented whole; a request that breaks these rules returns an empty list with an explanation in notes. Where a neighbouring booking leaves only part of the requested range free, the yacht is returned with shortenedStay: true and its own arrival/departure dates.
Errors
Errors are returned as application/problem+json (RFC 9457) with a stable machine-readable code, a human-readable detail and a hint on how to fix the request:
HTTP/1.1 400 Bad Request
Content-Type: application/problem+json
{
"type": "https://mundiczarter.pl/developers#error-invalid-parameter",
"title": "Invalid parameter",
"status": 400,
"detail": "Data przyjazdu nie moze byc w przeszlosci.",
"code": "invalid_parameter",
"hint": "Required: from (arrival) and to (return day) as YYYY-MM-DD, 1-30 nights. Optional: bunks (1-20), type (e.g. \"Antila 27\"). See https://mundiczarter.pl/openapi.json",
"documentation": "https://mundiczarter.pl/developers"
}
The detail text of validation errors may be in Polish; rely on code and status.
| Status | code | Meaning and what to do |
|---|---|---|
| 400 | invalid_parameter | Missing or invalid parameter. Fix the request according to hint. |
| 404 | not_found | No such endpoint under /api/. The only endpoint is /api/v1/availability. |
| 405 | method_not_allowed | Use GET or HEAD (see the Allow header). |
| 429 | rate_limited | Too many requests; wait Retry-After seconds. Cache responses: they stay valid for 10 minutes. |
| 500 | internal_error | Unexpected server error. Retry later; if it persists call +48 534 122 305. |
Rate limits and caching
- 30 requests per 10 minutes per IP address; above that the API answers
429withRetry-After(seconds). - Every response, including errors and cached answers, carries the quota state so clients can self-throttle:
| Header | Meaning |
|---|---|
RateLimit-Limit | Quota of the window (30). |
RateLimit-Remaining | Requests left in the window. |
RateLimit-Reset | Seconds until the window resets. |
RateLimit-Policy | Structured field, e.g. "default";q=30;w=600. |
RateLimit | Structured field, e.g. "default";r=29;t=600 (remaining; seconds to reset). |
Retry-After | On 429 only: seconds to wait. |
RateLimit-Limit: 30
RateLimit-Remaining: 29
RateLimit-Reset: 600
RateLimit-Policy: "default";q=30;w=600
RateLimit: "default";r=29;t=600
- Responses are cached on the server for up to 10 minutes (
X-Cache: HIT|MISS;generatedAttells when the data was computed). Cached answers do not use up the quota. Final availability is confirmed by the calendar on the yacht page. - CORS is open (
Access-Control-Allow-Origin: *); responses carryX-Robots-Tag: noindex.
Versioning and deprecation policy
- The version is in the URL path:
/api/v1/…. Every response hasAPI-Version: 1. - Breaking changes are released only as a new major version (
/api/v2/…). Adding optional parameters or response fields is not breaking and may happen in v1 at any time: clients must ignore unknown fields. - A deprecated version keeps working for at least 12 months after its successor is announced.
- Deprecation is signalled with the
DeprecationandSunsetresponse headers (RFC 9745, RFC 8594), in openapi.json and on this page.
Machine-readable descriptions and tools
- OpenAPI 3.1 specification with typed error schema (
Problem). - API catalog (RFC 9727,
application/linkset+json). - llms-full.txt: fleet, prices, discounts and terms for AI assistants; every page also answers
Accept: text/markdown. - No official CLI or SDK: a single
curlcall (see Quickstart) is all that is needed.
Support
Questions or problems: mundij@op.pl, +48 534 122 305, contact page.