openapi: 3.2.0 info: title: RentalReady Multi Units API version: 1.0.0 (api) description: 'This API enables you to access and update resources from RentalReady (GuestReady PMS) ### Throttling Our API supports up to 400 requests per minute ' servers: - url: https://pms.rentalready.io/api/v3/ description: Base URL declared by the provider in apis.yml (roadmap#122). tags: - name: multi_units paths: /api/v3/multi_units/: get: operationId: multi_units_list parameters: - in: query name: created_after schema: type: string format: date-time - in: query name: created_before schema: type: string format: date-time - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: modified_after schema: type: string format: date-time - in: query name: modified_before schema: type: string format: date-time - in: query name: name schema: type: string - in: query name: office schema: type: integer description: Office - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - in: query name: status schema: type: string - in: query name: type schema: type: string tags: - multi_units security: - oauth2: - rentals:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedMultiUnitList' description: '' post: operationId: multi_units_create description: Create a multi-unit of type parent/child tags: - multi_units requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateMultiUnit' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateMultiUnit' multipart/form-data: schema: $ref: '#/components/schemas/CreateMultiUnit' required: true security: - oauth2: - rentals:write responses: '201': content: application/json: schema: $ref: '#/components/schemas/MultiUnit' description: '' /api/v3/multi_units/{id}/: get: operationId: multi_units_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this Multi-unit. required: true tags: - multi_units security: - oauth2: - rentals:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/MultiUnit' description: '' put: operationId: multi_units_update description: Update a multi-unit parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this Multi-unit. required: true tags: - multi_units requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateMultiUnit' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UpdateMultiUnit' multipart/form-data: schema: $ref: '#/components/schemas/UpdateMultiUnit' security: - oauth2: - rentals:write responses: '200': content: application/json: schema: $ref: '#/components/schemas/MultiUnit' description: '' patch: operationId: multi_units_partial_update description: Partially update a multi-unit parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this Multi-unit. required: true tags: - multi_units requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUpdateMultiUnit' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUpdateMultiUnit' multipart/form-data: schema: $ref: '#/components/schemas/PatchedUpdateMultiUnit' security: - oauth2: - rentals:write responses: '200': content: application/json: schema: $ref: '#/components/schemas/MultiUnit' description: '' delete: operationId: multi_units_destroy description: Delete a multi-unit. The deactivation runs asynchronously. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this Multi-unit. required: true tags: - multi_units security: - oauth2: - rentals:write responses: '204': description: No response body components: schemas: MultiUnitTypeEnum: enum: - PARENT_CHILD - HOTEL type: string description: '* `PARENT_CHILD` - PARENT_CHILD * `HOTEL` - HOTEL' PaginatedMultiUnitList: type: object required: - count - results properties: count: type: integer example: 123 next: type: - string - 'null' format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: - string - 'null' format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/MultiUnit' limit: type: integer example: 50 MultiUnit: type: object properties: id: type: integer readOnly: true description: Numeric database id of the multi-unit. display_id: type: string readOnly: true description: Human-readable identifier of the multi-unit, e.g. M123 for a parent/child multi-unit or H123 for a hotel. name: type: string readOnly: true description: Name of the multi-unit. status: allOf: - $ref: '#/components/schemas/MultiUnitStatusEnum' readOnly: true description: 'Lifecycle status of the multi-unit. Multi-units created through this API start ACTIVE. * `INACTIVE` - INACTIVE * `ACTIVE` - ACTIVE * `ONBOARDING` - ONBOARDING' type: allOf: - $ref: '#/components/schemas/MultiUnitTypeEnum' readOnly: true description: 'Kind of multi-unit. Multi-units created through this API are PARENT_CHILD, where one main (parent) property groups several sub-units (children). * `PARENT_CHILD` - PARENT_CHILD * `HOTEL` - HOTEL' office_name: type: string title: Office name description: Name of the office the multi-unit belongs to, inherited from its main (parent) unit. readOnly: true host: type: string readOnly: true description: Username of the owner the multi-unit belongs to. address: type: string readOnly: true description: Postal address of the multi-unit, inherited from its main unit. rentals: type: array items: type: string readOnly: true description: Ids of the properties (rentals) grouped in the multi-unit, including the main (parent) unit. main_unit: type: - string - 'null' readOnly: true description: Id of the property (rental) that is the main (parent) unit, or null when none is set. created: type: string format: date-time readOnly: true description: Date and time the multi-unit was created (ISO 8601, e.g. 2026-07-04T09:00:00Z). modified: type: string format: date-time readOnly: true description: Date and time the multi-unit was last modified (ISO 8601, e.g. 2026-07-04T09:00:00Z). required: - address - created - display_id - host - id - main_unit - modified - name - office_name - rentals - status - type MultiUnitStatusEnum: enum: - INACTIVE - ACTIVE - ONBOARDING type: string description: '* `INACTIVE` - INACTIVE * `ACTIVE` - ACTIVE * `ONBOARDING` - ONBOARDING' PatchedUpdateMultiUnit: type: object description: 'Partially update a parent/child multi-unit. Every field is optional, but ``main_unit`` and ``rentals`` must be supplied together (or both omitted). When they are supplied, the multi-unit''s office and address are refreshed from the new main unit; newly added properties have their calendars blocked and removed ones unblocked for future reservations (see ``save_rentals_and_block``).' properties: name: type: string description: New name for the multi-unit. main_unit: type: string title: Contract number description: Id of the property (rental) to set as the main (parent) unit. Must be provided together with rentals; the multi-unit's office and address are refreshed from it. rentals: type: array items: type: string title: Contract number description: Ids of the properties (rentals) to group under the multi-unit, including the main unit and at least one sub-unit. Must be provided together with main_unit. A property not already in this multi-unit must not belong to another one and must share the main unit's address or sit within the configured distance of it. Newly added properties have their future reservations' calendars blocked and removed ones unblocked. UpdateMultiUnit: type: object description: 'Partially update a parent/child multi-unit. Every field is optional, but ``main_unit`` and ``rentals`` must be supplied together (or both omitted). When they are supplied, the multi-unit''s office and address are refreshed from the new main unit; newly added properties have their calendars blocked and removed ones unblocked for future reservations (see ``save_rentals_and_block``).' properties: name: type: string description: New name for the multi-unit. main_unit: type: string title: Contract number description: Id of the property (rental) to set as the main (parent) unit. Must be provided together with rentals; the multi-unit's office and address are refreshed from it. rentals: type: array items: type: string title: Contract number description: Ids of the properties (rentals) to group under the multi-unit, including the main unit and at least one sub-unit. Must be provided together with main_unit. A property not already in this multi-unit must not belong to another one and must share the main unit's address or sit within the configured distance of it. Newly added properties have their future reservations' calendars blocked and removed ones unblocked. CreateMultiUnit: type: object description: 'Create a parent/child multi-unit from a main unit and its sub-units. The multi-unit takes its office and address from the main unit and is created ACTIVE. Assigning the properties blocks the calendars of their future reservations (see ``save_rentals_and_block``).' properties: name: type: string description: Name of the multi-unit. host: type: string description: Username of the owner the multi-unit belongs to. main_unit: type: string title: Contract number description: Id of the property (rental) to use as the main (parent) unit. Its office and address become the multi-unit's office and address. rentals: type: array items: type: string title: Contract number description: Ids of the properties (rentals) to group under the multi-unit, including the main unit and at least one sub-unit. The main unit is added automatically if omitted. Each property must not already belong to another multi-unit and must share the main unit's address or sit within the configured distance of it. Once assigned, each property's future reservations have their calendars blocked. required: - host - main_unit - name - rentals securitySchemes: basicAuth: type: http scheme: basic cookieAuth: type: apiKey in: cookie name: sessionid oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: /o/authorize/ tokenUrl: /o/token/ refreshUrl: /o/token/ scopes: read: Read scope write: Write scope amenities:read: Read amenities amenities:write: Create, update and delete amenities photos:write: Create, update and delete photos reservations:read: Read reservations reservations:write: Create, update and cancel reservations reservation_platform:read: Read reservation platform reviews:read: Read reviews reviews:write: Write reviews owners:read: Read owners owners:write: Write owners hosts:read: Read hosts (deprecated) hosts:write: Write hosts (deprecated) offices:read: Read offices property_managers:read: Read property managers onboarding_requests:read: Read onboarding requests listing_requests:read: Read listing requests pricing:read: Read pricing pricing:write: Create, update and delete pricing users:read: Read user data calendar:read: Read calendar calendar:write: Write calendar rentals:read: Read rentals rentals:write: Create, update and delete rentals issues:read: Read issues issues:write: Write issues incidents:read: Read incidents incidents:write: Write incidents missions:read: Read missions missions:write: Write missions agents:read: Read agents smart_schedulers:read: Read smart schedulers smart_schedulers:write: Write smart schedulers neighbourhoods:read: Read neighbourhoods payment_links:read: Read payment links swikly_deposits:read: Read swikly deposits payout_adjustments:read: Read payout adjustments payout_adjustments:write: Write payout adjustments payment_acceptance_transactions:read: Read payment acceptance transactions payment_acceptance_transactions:write: Write payment acceptance transactions accounting_invoice:read: Read accounting invoices accounting_invoice:write: Write accounting invoices guest_registration:read: Read guest registration data conversations:read: Read conversations conversations:write: Write conversations messages:read: Read messages messages:write: Write messages inquiries:read: Read inquiries city_tax_rules:read: Read city tax rules custom_fields:read: Read custom fields custom_fields:write: Write custom fields tokenAuth: type: apiKey in: header name: Authorization description: Token-based authentication with required prefix "Token"