GuestReady Rentals API

The rentals API from GuestReady — 11 operation(s) for rentals.

Business capability
Lodging Product Management BC-4000.10

Operations 17

GET /api/v3/rentals/ #
POST /api/v3/rentals/ #
GET /api/v3/rentals/{numero_contrat}/ #
PUT /api/v3/rentals/{numero_contrat}/ #
PATCH /api/v3/rentals/{numero_contrat}/ #
DELETE /api/v3/rentals/{numero_contrat}/ #
PATCH /api/v3/rentals/{numero_contrat}/block/ #
GET /api/v3/rentals/{numero_contrat}/custom_fields/ #
POST /api/v3/rentals/{numero_contrat}/custom_fields/ #
POST /api/v3/rentals/{numero_contrat}/disable/ #
POST /api/v3/rentals/{numero_contrat}/enable/ #
GET /api/v3/rentals/{numero_contrat}/history/ #
POST /api/v3/rentals/{numero_contrat}/smart-locks/ #
DELETE /api/v3/rentals/{numero_contrat}/smart-locks/{smart_lock_id}/ #
PATCH /api/v3/rentals/{numero_contrat}/unblock/ #
GET /api/v3/rentals/{numero_contrat}/upselling_configuration/ #
PATCH /api/v3/rentals/{numero_contrat}/upselling_configuration/ #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/guestready-rentals-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

guestready-rentals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: RentalReady Rentals 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: rentals
paths:
  /api/v3/rentals/:
    get:
      operationId: rentals_list
      description: Mixin that adds custom-fields GET/POST actions to entity ViewSets.
      parameters:
      - in: query
        name: country
        schema:
          type: integer
      - in: query
        name: created_after
        schema:
          type: string
          format: date-time
      - in: query
        name: created_before
        schema:
          type: string
          format: date-time
      - in: query
        name: date_after
        schema:
          type: string
          format: date
        description: Dates
      - in: query
        name: date_before
        schema:
          type: string
          format: date
        description: Dates
      - 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: multi_unit_id
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: numero_contrat
        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: owner_user_name
        schema:
          type: string
      - in: query
        name: rental_category
        schema:
          type: string
          enum:
          - LONG-TERM
          - MID-TERM
          - SHORT-TERM
        description: '* `SHORT-TERM` - Short-term

          * `MID-TERM` - Mid-term

          * `LONG-TERM` - Long-term'
      - in: query
        name: sleeps_max
        schema:
          type: integer
      - in: query
        name: status
        schema:
          type:
          - string
          - 'null'
          title: Property status
          enum:
          - ACTIVE
          - INACTIVE
          - PENDING_DEACTIVATION
          - PRE_ONBOARDING
        description: '* `ACTIVE` - Active

          * `INACTIVE` - Inactive

          * `PENDING_DEACTIVATION` - Pending deactivation

          * `PRE_ONBOARDING` - Onboarding in progress'
      - in: query
        name: tags
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: travellers_count
        schema:
          type: integer
      - in: query
        name: with_inactive
        schema:
          type: boolean
      tags:
      - rentals
      security:
      - oauth2:
        - rentals:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRentalList'
          description: ''
    post:
      operationId: rentals_create
      description: Create a rental in status onboarding, to fill it with all required data
      tags:
      - rentals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRental'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateRental'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateRental'
        required: true
      security:
      - oauth2:
        - rentals:write
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRental'
          description: ''
  /api/v3/rentals/{numero_contrat}/:
    get:
      operationId: rentals_retrieve
      description: Mixin that adds custom-fields GET/POST actions to entity ViewSets.
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      security:
      - oauth2:
        - rentals:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rental'
          description: ''
    put:
      operationId: rentals_update
      description: Update a rental
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Rental'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Rental'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Rental'
        required: true
      security:
      - oauth2:
        - rentals:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rental'
          description: ''
    patch:
      operationId: rentals_partial_update
      description: Update a rental
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRental'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedRental'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedRental'
      security:
      - oauth2:
        - rentals:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rental'
          description: ''
    delete:
      operationId: rentals_destroy
      description: Mixin that adds custom-fields GET/POST actions to entity ViewSets.
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      security:
      - oauth2:
        - rentals:write
      responses:
        '204':
          description: No response body
  /api/v3/rentals/{numero_contrat}/block/:
    patch:
      operationId: rentals_block_partial_update
      description: Block calendar
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBlockRentalCalendar'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBlockRentalCalendar'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBlockRentalCalendar'
      security:
      - oauth2:
        - rentals:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockRentalCalendar'
          description: ''
  /api/v3/rentals/{numero_contrat}/custom_fields/:
    get:
      operationId: rentals_custom_fields_retrieve
      description: Get the custom-field values set on this object, as a mapping of custom field key to value.
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      security:
      - oauth2:
        - rentals:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rental'
          description: ''
    post:
      operationId: rentals_custom_fields_create
      description: Set custom-field values on this object. Send a mapping of custom field key to value; keys left out keep their current value, and a key with no definition on this account is rejected.
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Rental'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Rental'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Rental'
        required: true
      security:
      - oauth2:
        - rentals:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rental'
          description: ''
  /api/v3/rentals/{numero_contrat}/disable/:
    post:
      operationId: rentals_disable_create
      description: Disable property
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisableProperty'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DisableProperty'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DisableProperty'
        required: true
      security:
      - oauth2:
        - rentals:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisableProperty'
          description: ''
  /api/v3/rentals/{numero_contrat}/enable/:
    post:
      operationId: rentals_enable_create
      description: Disable property
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisableProperty'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DisableProperty'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DisableProperty'
        required: true
      security:
      - oauth2:
        - rentals:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisableProperty'
          description: ''
  /api/v3/rentals/{numero_contrat}/history/:
    get:
      operationId: rentals_history_list
      description: Get property change history
      parameters:
      - in: query
        name: field
        schema:
          type: string
        description: Filter by field name (matches field key or display name)
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - rentals
      security:
      - oauth2:
        - rentals:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRentalHistoryList'
          description: ''
  /api/v3/rentals/{numero_contrat}/smart-locks/:
    post:
      operationId: rentals_smart_locks_create
      description: Assign a smart lock to a property
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartLockAssign'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SmartLockAssign'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SmartLockAssign'
        required: true
      security:
      - oauth2:
        - rentals:write
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RentalSmartLock'
          description: ''
  /api/v3/rentals/{numero_contrat}/smart-locks/{smart_lock_id}/:
    delete:
      operationId: rentals_smart_locks_destroy
      description: Remove a smart lock from a property
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      - in: path
        name: smart_lock_id
        schema:
          type: string
        required: true
      tags:
      - rentals
      security:
      - oauth2:
        - rentals:write
      responses:
        '204':
          description: No response body
  /api/v3/rentals/{numero_contrat}/unblock/:
    patch:
      operationId: rentals_unblock_partial_update
      description: Unblock calendar
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUnblockRentalCalendar'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUnblockRentalCalendar'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUnblockRentalCalendar'
      security:
      - oauth2:
        - rentals:write
      responses:
        '200':
          content:
            application/json:
              schema:
                example:
                  message: Calendar was unblocked
          description: ''
  /api/v3/rentals/{numero_contrat}/upselling_configuration/:
    get:
      operationId: rentals_upselling_configuration_retrieve
      description: Get the upselling configuration assigned to the property.
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      security:
      - oauth2:
        - rentals:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RentalUpsellingConfiguration'
          description: ''
    patch:
      operationId: rentals_upselling_configuration_partial_update
      description: Update the upselling configuration assigned to the property. The configuration must be one of those connected to the property's office; pass null to clear the assignment.
      parameters:
      - in: path
        name: numero_contrat
        schema:
          type: string
          title: Contract number
          description: "This field is not editable after creation.\n ALWAYS fill it with the correct value"
        required: true
      tags:
      - rentals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRentalUpsellingConfiguration'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedRentalUpsellingConfiguration'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedRentalUpsellingConfiguration'
      security:
      - oauth2:
        - rentals:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RentalUpsellingConfiguration'
          description: ''
components:
  schemas:
    RentalPhoto:
      type: object
      properties:
        picture:
          type: string
          readOnly: true
      required:
      - picture
    RentalInvoiceDetails:
      type: object
      properties:
        business_name:
          type: string
          maxLength: 250
        tax_number:
          type: string
          maxLength: 250
        address_line_1:
          type: string
          maxLength: 250
        address_line_2:
          type: string
          maxLength: 250
        city:
          type: string
          maxLength: 250
        postal_code:
          type: string
          maxLength: 10
        country:
          type: integer
        logo:
          type:
          - string
          - 'null'
          format: uri
      required:
      - address_line_1
      - address_line_2
      - business_name
      - city
      - postal_code
      - tax_number
    BuildingConstructionPeriodEnum:
      enum:
      - BEFORE_1949
      - FROM_1949_TO_1974
      - FROM_1975_TO_1989
      - FROM_1989_TO_2005
      - AFTER_2005
      type: string
      description: '* `BEFORE_1949` - before 1949

        * `FROM_1949_TO_1974` - from 1949 to 1974

        * `FROM_1975_TO_1989` - from 1975 to 1989

        * `FROM_1989_TO_2005` - from 1989 to 2005

        * `AFTER_2005` - after 2005'
    RentalCategoryEnum:
      enum:
      - SHORT-TERM
      - MID-TERM
      - LONG-TERM
      type: string
      description: '* `SHORT-TERM` - Short-term

        * `MID-TERM` - Mid-term

        * `LONG-TERM` - Long-term'
    SecurityDepositChargingMethodEnum:
      enum:
      - NONE
      - SWIKLY
      - STRIPE
      type: string
      description: '* `NONE` - No security deposit

        * `SWIKLY` - Swikly

        * `STRIPE` - Stripe'
    RentalUpsellingConfiguration:
      type: object
      properties:
        managed_upselling_configuration:
          type:
          - integer
          - 'null'
          description: ID of the upselling configuration to assign to the property. Must be one of the configurations connected to the property's office. Pass null to clear the assignment.
    DisableProperty:
      type: object
      properties:
        reason:
          type: string
      required:
      - reason
    PaginatedRentalHistoryList:
      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/RentalHistory'
        limit:
          type: integer
          example: 50
    BuildingLegalStatusEnum:
      enum:
      - INDIVIDUAL
      - CONDOMINIUM
      type: string
      description: '* `INDIVIDUAL` - Individual ownership

        * `CONDOMINIUM` - Condominium regime'
    PropertyTypeEnum:
      enum:
      - PRIMARY
      - OTHER
      - SECONDARY
      - UNKNOWN
      type: string
      description: '* `PRIMARY` - Primary residence

        * `OTHER` - Non-residential property (commercial/guest-room)

        * `SECONDARY` - Secondary residence

        * `UNKNOWN` - Unknown'
    RentalListing:
      type: object
      properties:
        language:
          type: string
          readOnly: true
        headline:
          type:
          - string
          - 'null'
          maxLength: 75
        summary:
          type:
          - string
          - 'null'
          maxLength: 500
        space:
          type:
          - string
          - 'null'
        neighborhood:
          type:
          - string
          - 'null'
          title: Neighbourhood
      required:
      - language
    RentalHistoryTypeEnum:
      enum:
      - +
      - '~'
      - '-'
      type: string
      description: '* `+` - +

        * `~` - ~

        * `-` - -'
    TypeD5dEnum:
      type: string
      enum:
      - akiles
      - nuki
      - ttlock
      - omnitec
      - salto_space
    InstantBookingChoicesEnum:
      enum:
      - 'OFF'
      - EVERYONE
      type: string
      description: '* `OFF` - No one

        * `EVERYONE` - Everyone'
    KeyStrategyEnum:
      enum:
      - PADLOCK
      - KEYNEST
      - IGLOOHOME_KEYBOX
      - IGLOOHOME_LOCK
      - OFFICE
      - NUKI_LOCK
      - SEAM_INTEGRATED_LOCK
      - KEY_STORAGE
      - PERSONAL_CHECK_IN
      - SMART_LOCK
      - DUBAI_KEYLESS
      - REMOTELOCK
      - YACAN_LOCK
      - MANAGED_SMART_LOCK
      - OTHER
      type: string
      description: '* `PADLOCK` - Lockbox/Padlock

        * `KEYNEST` - Keynest

        * `IGLOOHOME_KEYBOX` - Igloohome KeyBox

        * `IGLOOHOME_LOCK` - Igloohome Lock

        * `OFFICE` - Office pick-up

        * `NUKI_LOCK` - Nuki lock

        * `SEAM_INTEGRATED_LOCK` - Integrated lock

        * `KEY_STORAGE` - Key storage

        * `PERSONAL_CHECK_IN` - Personal check-in

        * `SMART_LOCK` - Smart lock (not synchronised with RentalReady)

        * `DUBAI_KEYLESS` - Dubai Keyless

        * `REMOTELOCK` - RemoteLock

        * `YACAN_LOCK` - Yacan lock

        * `MANAGED_SMART_LOCK` - Managed smart lock

        * `OTHER` - Other'
    Status075Enum:
      enum:
      - ACTIVE
      - INACTIVE
      - PENDING_DEACTIVATION
      - PRE_ONBOARDING
      type: string
      description: '* `ACTIVE` - ACTIVE

        * `INACTIVE` - INACTIVE

        * `PENDING_DEACTIVATION` - PENDING_DEACTIVATION

        * `PRE_ONBOARDING` - PRE_ONBOARDING'
    CommissionCalculationEnum:
      enum:
      - PROPERTY_MANAGER
      - OWNER
      type: string
      description: '* `PROPERTY_MANAGER` - Property Manager commission

        * `OWNER` - Owner commission'
    RentalHistoryChange:
      type: object
      properties:
        field:
          type: string
        field_name:
          type: string
        old:
          type:
          - string
          - 'null'
        new:
          type:
          - string
          - 'null'
      required:
      - field
      - field_name
      - new
      - old
    CreateRental:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        name:
          type:
          - string
          - 'null'
          title: Property name
          description: Use practical name for owners such as street name, do not use abbreviation or contract number. Name is displayed on invoices and owner profile.
          maxLength: 100
        status:
          allOf:
          - $ref: '#/components/schemas/Status075Enum'
          readOnly: true
        office_name:
          type: string
          title: Office name
          description: 'Should be the name of the property manager + city (example: GUESTREADY-PARIS)'
        owner_name:
          type: string
        city:
          type: integer
        city_name:
          type: string
          readOnly: true
        country:
          type: integer
        country_name:
          type: string
          readOnly: true
        address:
          type: string
          description: 'Name and street number only. Example: 2 rue Volta'
        postal_code:
          type: string
        geoposition:
          type: string
        key_strategy:
          description: 'Is used to define how to work with Keys.


            * `PADLOCK` - Lockbox/Padlock

            * `KEYNEST` - Keynest

            * `IGLOOHOME_KEYBOX` - Igloohome KeyBox

            * `IGLOOHOME_LOCK` - Igloohome Lock

            * `OFFICE` - Office pick-up

            * `NUKI_LOCK` - Nuki lock

            * `SEAM_INTEGRATED_LOCK` - Integrated lock

            * `KEY_STORAGE` - Key storage

            * `PERSONAL_CHECK_IN` - Personal check-in

            * `SMART_LOCK` - Smart lock (not synchronised with RentalReady)

            * `DUBAI_KEYLESS` - Dubai Keyless

            * `REMOTELOCK` - RemoteLock

            * `YACAN_LOCK` - Yacan lock

            * `MANAGED_SMART_LOCK` - Managed smart lock

            * `OTHER` - Other'
          oneOf:
          - $ref: '#/components/schemas/KeyStrategyEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        wifi_name:
          type: string
          maxLength: 200
        wifi_password:
          type: string
          maxLength: 200
        checkout_instructions:
          type: string
        trash_can_area_local:
          type: string
        trash_can_area_en:
          type: string
        key_deposit_local:
          type: string
        key_deposit_en:
          type: string
        key_box_code:
          type:
          - string
          - 'null'
          maxLength: 255
        lockbox_code:
          type:
          - string
          - 'null'
          maxLength: 255
        self_checkin_instructions_local:
          type: string
        self_checkin_instructions_en:
          type: string
        property_access_en:
          type: string
        property_access_local:
          type: string
        owner_cleaning_fee:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,2})?$
          default: '0.00'
        platform_cleaning_fee:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,2})?$
          default: '0.00'
      required:
      - address
      - city
      - city_name
      - country
      - country_name
      - geoposition
      - id
      - office_name
      - owner_name
      - postal_code
      - status
    CleaningFeeInvoicedToEnum:
      enum:
      - GUEST
      - HOST
      type: string
      description: '* `GUEST` - Guest

        * `HOST` - Owner'
    PublishedStatusEnum:
      enum:
      - NEW
      - PENDING
      - APPROVED
      type: string
      description: '* `NEW` - New

        * `PENDING` - Pending activation

        * `APPROVED` - Activated'
    CancellationPolicyCategoryEnum:
      enum:
      - flexible
      - moderate
      - strict
      - firm
      type: string
      description: '* `flexible` - Flexible

        * `moderate` - Moderate

        * `strict` - Strict

        * `firm` - Firm'
    RentalHistory:
      type: object
      properties:
        date:
          type: string
          format: date-time
        user:
          type:
          - string
          - 'null'
          readOnly: true
        type:
          allOf:
          - $ref: '#/components/schemas/RentalHistoryTypeEnum'
          readOnly: true
          description: 'Kind of history change: `+` created, `~` changed, `-` deleted.


            * `+` - +

            * `~` - ~

            * `-` - -'
        changes:
          type: array
          items:
            $ref: '#/components/schemas/RentalHistoryChange'
          readOnly: true
      required:
      - changes
      - date
      - type
      - user
    StarsEnum:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      type: integer
      description: '* `0` - No Stars

        * `1` - 1 Star

        * `2` - 2 Stars

        * `3` - 3 Stars

        * `4` - 4 Stars

        * `5` - 5 Stars'
    MultiUnitRoleEnum:
      enum:
      - ROOM_TYPE
      - INVENTORY
      - PARENT
      - CHILD
      type: string
      description: '* `ROOM_TYPE` - Room type

        * `INVENTORY` - Inventory

        * `PARENT` - Parent

        * `CHILD` - Child'
    RentalCheckoutOptionTypes:
      type: object
      properties:
        return_keys:
          type: boolean
        return_keys_text:
          type:
          - string
          - 'null'
          title: Return keys to a specific place/person on checking out
        turn_things_off:
          type: boolean
        throw_trash:
          type: boolean
        lock_up:
          type: boolean
        gather_towels:
          type: boolean
        gather_towels_text:
          type:
          - string
          - 'null'
          title: Keep the towels in a specified place
        additional_requests:
          type: boolean
        additional_requests_text:
          type:
          - string
          - 'null'
          title: Other requests on/before checking out
    PaginatedRentalList:
      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/Rental'
        limit:
          type: integer
          example: 50
    SmartLockAssign:
      type: object
      properties:
        id:
          type: integer
          description: ID of the smart lock to assign.
      required:
      - id
    CurrencyValueEnum:
      enum:
      - AED
      - AUD
      - BRL
      - CAD
      - CHF
      - CZK
      - EUR
      - GBP
      - HKD
      - IDR
      - ILS
      - JPY
      - KRW
      - MAD
      - MYR
      - PLN
      - RUB
      - SAR
      - THB
      - USD
      type: string
      description: '* `AED` - AED

        * `AUD` - AUD

        * `BRL` - BRL

        * `CAD` - CAD

        * `CHF` - CHF

        * `CZK` - CZK

        * `EUR` - EUR

        * `GBP` - GBP

        * `HKD` - HKD

        * `IDR` - IDR

        * `ILS` - ILS

        * `JPY` - JPY

        * 

# --- truncated at 32 KB (96 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/guestready/refs/heads/main/openapi/guestready-rentals-api-openapi.yml