Changelog
2026-08 — A machine-readable contract
Section titled “2026-08 — A machine-readable contract”GET /partner/v1/openapi.json— the full surface as OpenAPI 3.1, generated from the route definitions rather than written alongside them, so it cannot drift from what the API actually serves. Readable without a key; point your client generator at it.- Interactive explorer — every endpoint with its schemas, and a request runner that uses your own key.
- Validation errors now name the offending field in their
title. Thecodeis unchanged atVALIDATION, which is what you branch on.
2026-08 — Webhooks
Section titled “2026-08 — Webhooks”- Bookings can be pushed to you instead of polled:
booking.created,booking.updated,booking.cancelled. The agency registers endpoints in its portal; see the webhooks guide. - Every request is signed with HMAC-SHA-256 over
<timestamp>.<body>in anX-MyRentalCalendar-Signatureheader, with a per-endpoint secret. - Failed deliveries retry after 1 min, 5 min, 30 min, 2 h and 6 h; an endpoint failing 20 times in a row is switched off and the agency is shown why.
- Payloads carry no guest personal data, whatever the key’s scopes — the body travels to a URL the platform does not control.
2026-08 — Writing bookings, and reading guests
Section titled “2026-08 — Writing bookings, and reading guests”write:bookings— new scope.POST /partner/v1/bookingscreates a booking,POST /partner/v1/bookings/:id/cancelcancels one. Both run the same checks as the agency’s own portal (minimum stay, cleaning block, expected extensions, double-booking guard) and neither accepts a price: the engine decides. See the guide.read:guests— new scope for guest master data (name, contact, nationality, stay references). Identity documents captured at check-in remain unavailable through the API, in both directions.- Both new scopes are off by default when a key is created, and existing keys did not gain them.
GET /partner/v1/bookings/:idandGET /partner/v1/fee-typesadded.- Lists paginate:
?page=&pageSize=withtotalItems/pageCountbeside the collection.limitkeeps working, andbookingsis still the array’s name — nothing existing had to change. - Writes are recorded in the agency’s audit trail with the key as the actor.
2026-08 — Budgets per key, and a visible month
Section titled “2026-08 — Budgets per key, and a visible month”- The per-minute budget now follows the key, not the client address, and it is 60/minute rather than 120 per address. Several integrations behind one office IP no longer share one budget, and a runaway script cannot starve its siblings. Splitting work across two keys buys throughput.
X-RateLimit-Limit/-Remaining/-Reseton every answer, so you can pace instead of waiting to be refused.- Monthly quota of 50,000 requests per agency across all keys, answering
429 QUOTA_EXCEEDEDwithquota,usedandresetsAt. The position is onGET /partner/v1/meand in the agency portal. - CORS is now open on
/partner/*and/mcp(Access-Control-Allow-Origin: *). The surface takes no cookies, so browsers may call it directly — which still does not make shipping a key to a browser a good idea.
2026-08 — Key introspection & self-service keys
Section titled “2026-08 — Key introspection & self-service keys”GET /partner/v1/me— new. Returns the agency behind the key, the key’s scopes and the enforced rate budget. No scope required.- Key management moved into the portal (Partner API page): create keys with per-scope selection and optional expiry, see last use, revoke instantly. Previously keys existed only via the internal API.
- Managing keys is now its own functional right, so it can be delegated without handing out an admin login. Revoking a key keeps working after a downgrade.
2026-08 — Initial release
Section titled “2026-08 — Initial release”- Partner REST API
/partner/v1(read-only): units, availability, live quotes, bookings. - MCP server at
/mcp— Streamable HTTP, stateless; toolslist_units,get_availability,quote_stay,list_bookings. - Self-service API keys with scopes, optional expiry, instant revocation and last-used tracking (portal → Settings → API keys, Pro plan).
- Rate limit 120 requests/minute per client across REST and MCP.
Additive changes land here without notice periods; breaking changes ship as
/partner/v2 with a migration window.