Overview
| Base URL | https://api.myrentalcalendar.com |
| OpenAPI | GET /partner/v1/openapi.json — generated from the code that serves the API |
| Version prefix | /partner/v1 — additive changes only; breaking changes ship as /partner/v2 |
| Auth | Authorization: Bearer hr_live_… (details) |
| Content type | application/json (UTF-8) both ways |
| Rate limit | 60 requests/minute per key, shared with MCP; 429 + Retry-After beyond |
| Monthly quota | 50,000 requests per agency per calendar month (UTC) |
Endpoints
Section titled “Endpoints”| Method & path | Scope | Purpose |
|---|---|---|
GET /partner/v1/me | — | The agency behind the key, its scopes and rate budget |
GET /partner/v1/units | read:units | List all units |
GET /partner/v1/units/:slug | read:units | One unit in full detail |
GET /partner/v1/availability | read:availability | Blocked nights of a unit in a range |
POST /partner/v1/quote | read:rates | Price a stay with the live engine |
GET /partner/v1/fee-types | read:rates | The agency’s active fee catalogue |
GET /partner/v1/bookings | read:bookings | Booking rows without guest data |
GET /partner/v1/bookings/:id | read:bookings | One booking |
POST /partner/v1/bookings | write:bookings | Create a booking |
POST /partner/v1/bookings/:id/cancel | write:bookings | Cancel a booking |
GET /partner/v1/guests | read:guests | Guest master data |
GET /partner/v1/guests/:id | read:guests | One guest with their stays |
Conventions
Section titled “Conventions”- Dates are ISO
YYYY-MM-DD. Stays are half-open ranges[arrival, departure); a night is the date the guest sleeps. - Amounts are integers in the agency currency’s minor unit
(
45000= AED 450.00). The currency appears wherever amounts do. - Identifiers: units are addressed by their stable
slug; bookings by opaqueid. Slugs come fromGET /units. - Errors always carry a stable
codeand a human-readabletitle— branch on the code, log the title. Full list: errors & limits. - Lists paginate with
?page=1&pageSize=100(max 200). The collection keeps its own name in the response (bookings,guests) and the page facts sit beside it:page,pageSize,totalItems,pageCount. - Budgets are announced on every answer via
X-RateLimit-Limit,X-RateLimit-RemainingandX-RateLimit-Reset(unix seconds). Pace against the remaining count rather than waiting to be refused. - CORS is open on this surface (
Access-Control-Allow-Origin: *): it takes no cookies, so a browser can call it directly. That does not make it safe to ship a key to browsers — anyone reading your page would hold your agency’s key.