Rentberry Contracts API

Contracts

Operations 11

GET /v{version}/contract List signed contracts #
POST /v{version}/contract Create a new contract #
POST /v{version}/contract/publish/{id} Publish contract #
POST /v{version}/contract/invite/{id} Invite to sign contract #
GET /v{version}/contract/rental/{id} List contracts for a rental #
GET /v{version}/contract/sign/{id} Get contract signing URL #
GET /v{version}/contract/sign/token/{token} Sign contract with token #
GET /v{version}/contract/{id}/signatures Get contract signatures #
DELETE /v{version}/contract/{id} Delete contract #
GET /v{version}/contract/download/{id} Download contract #
POST /v{version}/contract/callback Handle contract signing callback #

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/rentberry-contracts-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

rentberry-contracts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Rentberry Contracts API
  description: Renting Done Right. Finally.
  version: 4
servers:
- url: https://api.rentberry.com/
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Contracts
  description: Contracts
paths:
  /v{version}/contract:
    get:
      tags:
      - Contracts
      summary: List signed contracts
      description: Available since API version 1. Returns a list of signed contracts for the authenticated user.
      operationId: get_api_v1_contract_list
      parameters:
      - name: version
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
      responses:
        '200':
          description: List of signed contracts
          content:
            application/json:
              schema:
                properties:
                  items:
                    description: List of contracts
                    type: array
                    items:
                      $ref: '#/components/schemas/Contract'
                type: object
        '401':
          description: Unauthorized - Missing or invalid authentication token
      security:
      - XAuthToken: []
    post:
      tags:
      - Contracts
      summary: Create a new contract
      description: Available since API version 1. Creates a new contract based on a template and associates it with a rental.
      operationId: post_api_v1_contract_create
      parameters:
      - name: version
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
              - contractTemplateId
              - rentalId
              properties:
                contractTemplateId:
                  description: ID of the contract template to use
                  type: integer
                rentalId:
                  description: ID of the rental to associate with the contract
                  type: integer
                signerEmail:
                  description: Email of the signer (optional)
                  type: string
                  format: email
                signerName:
                  description: Name of the signer (optional)
                  type: string
              type: object
      responses:
        '200':
          description: Contract created successfully
          content:
            application/json:
              schema:
                properties:
                  id:
                    description: Contract ID
                    type: integer
                  url:
                    description: URL for editing the contract
                    type: string
                type: object
        '400':
          description: Bad request - validation failed
        '402':
          description: Payment required - Feature is locked
        '404':
          description: Contract template or rental not found
        '405':
          description: (Real code 6018) Template is not owned by current user
        '406':
          description: (Real code 6023) Cannot create contract for someone else's apartment
        '407':
          description: (Real code 6025) Template error - cannot resolve contract template file
      security:
      - XAuthToken: []
  /v{version}/contract/publish/{id}:
    post:
      tags:
      - Contracts
      summary: Publish contract
      description: Available since API version 1. Initiates the contract publishing process and returns signing URL if embedded signing is required.
      operationId: post_api_v1_contract_publish
      parameters:
      - name: id
        in: path
        description: Contract ID
        required: true
        schema:
          type: integer
          pattern: \d+
      - name: version
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
      responses:
        '200':
          description: Contract published successfully or signing URL returned
          content:
            application/json:
              schema:
                properties:
                  url:
                    description: URL for embedded signing (if applicable)
                    type: string
                type: object
        '401':
          description: Unauthorized - Missing or invalid authentication token
        '400':
          description: Error - Signature not found or unable to generate signing URL
      security:
      - XAuthToken: []
  /v{version}/contract/invite/{id}:
    post:
      tags:
      - Contracts
      summary: Invite to sign contract
      description: Available since API version 1. Sends an invitation email to the homeowner to sign a contract.
      operationId: post_api_v1_contract_invite
      parameters:
      - name: id
        in: path
        description: Rental ID
        required: true
        schema:
          type: integer
          pattern: \d+
      - name: version
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
      responses:
        '200':
          description: Invitation sent successfully
          content:
            application/json:
              schema:
                properties: []
                type: object
              example: []
        '401':
          description: Unauthorized - Missing or invalid authentication token
        '404':
          description: Rental not found
        '500':
          description: Error sending email
      security:
      - XAuthToken: []
  /v{version}/contract/rental/{id}:
    get:
      tags:
      - Contracts
      summary: List contracts for a rental
      description: Available since API version 1. Returns a list of contracts associated with a specific rental.
      operationId: get_api_v1_contract_rental_list
      parameters:
      - name: id
        in: path
        description: Rental ID
        required: true
        schema:
          type: integer
          pattern: \d+
      - name: version
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
      responses:
        '200':
          description: List of contracts for the rental
          content:
            application/json:
              schema:
                properties:
                  items:
                    description: List of contracts with notification counts
                    type: array
                    items:
                      $ref: '#/components/schemas/Contract2'
                type: object
        '401':
          description: Unauthorized - Missing or invalid authentication token
        '403':
          description: Forbidden - User does not have permission to view this rental
        '404':
          description: Rental not found
      security:
      - XAuthToken: []
  /v{version}/contract/sign/{id}:
    get:
      tags:
      - Contracts
      summary: Get contract signing URL
      description: Available since API version 1. Returns a URL for signing a contract using embedded signing.
      operationId: get_api_v1_contract_sign
      parameters:
      - name: id
        in: path
        description: Contract ID
        required: true
        schema:
          type: integer
          pattern: \d+
      - name: version
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
      responses:
        '200':
          description: Contract signing URL returned
          content:
            application/json:
              schema:
                properties:
                  url:
                    description: URL for embedded signing
                    type: string
                type: object
        '403':
          description: Forbidden - User does not have permission to view this rental
        '404':
          description: Contract not found
        '405':
          description: (Real code 6024) Contract already signed
        '400':
          description: Error getting signing URL
  /v{version}/contract/sign/token/{token}:
    get:
      tags:
      - Contracts
      summary: Sign contract with token
      description: Available since API version 1. Returns a URL for signing a contract using a sign token.
      operationId: get_api_v1_contract_sign_by_token
      parameters:
      - name: token
        in: path
        description: Contract sign token
        required: true
        schema:
          type: string
          pattern: ^\w+$
      - name: version
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
      responses:
        '200':
          description: Contract signing URL returned
          content:
            application/json:
              schema:
                properties:
                  url:
                    description: URL for embedded signing
                    type: string
                type: object
        '404':
          description: Token not found
        '405':
          description: (Real code 6024) Contract already signed
        '400':
          description: Error getting signing URL
  /v{version}/contract/{id}/signatures:
    get:
      tags:
      - Contracts
      summary: Get contract signatures
      description: Available since API version 1. Returns information about signatures for a specific contract.
      operationId: get_api_v1_contract_signatures
      parameters:
      - name: id
        in: path
        description: Contract ID
        required: true
        schema:
          type: integer
          pattern: \d+
      - name: version
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
      responses:
        '200':
          description: Contract signatures information
          content:
            application/json:
              schema:
                description: List of contract signatures
                type: array
                items:
                  $ref: '#/components/schemas/ContractSignature2'
        '403':
          description: Forbidden - User does not have permission to view this contract
        '404':
          description: Contract not found
  /v{version}/contract/{id}:
    delete:
      tags:
      - Contracts
      summary: Delete contract
      description: Available since API version 1. Deletes a contract. Only the homeowner of the associated listing can delete the contract.
      operationId: delete_api_v1_contract_delete
      parameters:
      - name: id
        in: path
        description: Contract ID
        required: true
        schema:
          type: integer
          pattern: \d+
      - name: version
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
      responses:
        '200':
          description: Contract deleted successfully
          content:
            application/json:
              schema:
                properties: []
                type: object
              example: []
        '401':
          description: Unauthorized - Missing or invalid authentication token
        '403':
          description: Forbidden - User does not have permission to delete this contract
        '404':
          description: Contract not found
      security:
      - XAuthToken: []
  /v{version}/contract/download/{id}:
    get:
      tags:
      - Contracts
      summary: Download contract
      description: Available since API version 1. Downloads the signed contract as a PDF file.
      operationId: get_api_v1_contract_download
      parameters:
      - name: id
        in: path
        description: Contract ID
        required: true
        schema:
          type: integer
          pattern: \d+
      - name: version
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
      responses:
        '200':
          description: Contract PDF file
          headers:
            Content-Disposition:
              description: Attachment filename
              schema:
                type: string
          content:
            application/pdf: []
        '401':
          description: Unauthorized - Missing or invalid authentication token
        '403':
          description: Forbidden - User does not have permission to download this contract
        '400':
          description: Error downloading contract file
      security:
      - XAuthToken: []
  /v{version}/contract/callback:
    post:
      tags:
      - Contracts
      summary: Handle contract signing callback
      description: Available since API version 1. Processes callbacks from Dropbox Sign when contracts are signed or declined.
      operationId: post_api_v1_contract_callback
      parameters:
      - name: version
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                json:
                  description: JSON payload from Dropbox Sign containing event data
                  type: string
                  example: '{"event":{"event_type":"signature_request_signed","event_metadata":{"related_signature_id":"abc123"}}}'
              type: object
      responses:
        '200':
          description: Callback processed successfully
          content:
            application/json:
              schema:
                type: string
              example: Hello API Event Received
        '400':
          description: Bad request - Invalid callback payload
          content:
            application/json:
              schema:
                type: string
              example: No signature provided
components:
  schemas:
    User3:
      required:
      - nameFirst
      - nameLast
      - username
      - phone
      properties:
        phoneCountryCode:
          type: string
        id:
          type: integer
        nameFirst:
          type: string
          maxLength: 255
          minLength: 2
        nameMiddle:
          type: string
          maxLength: 255
          minLength: 1
        nameLast:
          type: string
          maxLength: 255
          minLength: 2
        username:
          type: string
          maxLength: 255
          minLength: 1
        profilePictureThumbs:
          type: string
        phone:
          type: string
          maxLength: 15
          minLength: 7
        stripeCustomer:
          $ref: '#/components/schemas/UserStripeCustomer3'
        fromNotBerryForbiddenCountry:
          type: boolean
          default: false
        verified:
          type: boolean
          default: false
        emailVerified:
          type: boolean
          default: false
        phoneVerified:
          type: boolean
          default: false
        registered:
          type: boolean
          default: true
        statusType:
          type: string
          default: regular
          enum:
          - regular
          - premium
          - premium_pending
          - vip
          - vip_pending
        deleted:
          type: boolean
          default: false
        locale:
          type: string
          default: en_US
          enum:
          - en_US
          - es_ES
        currency:
          type: string
        lengthUnit:
          type: string
          enum:
          - m
          - ft
      type: object
    ListingAddress2:
      properties:
        latitude:
          type: number
          format: float
          default: 0
        longitude:
          type: number
          format: float
          default: 0
        apartmentNumber:
          type: string
          maxLength: 64
          minLength: 1
        state:
          $ref: '#/components/schemas/State2'
        providedBy:
          type: string
        providerId:
          type:
          - string
          - 'null'
          default: null
        adminLevels:
          default: null
          oneOf:
          - $ref: '#/components/schemas/AdminLevelCollection'
        coordinates:
          default: null
          oneOf:
          - $ref: '#/components/schemas/Coordinates'
        bounds:
          default: null
          oneOf:
          - $ref: '#/components/schemas/Bounds'
        streetNumber:
          type:
          - string
          - 'null'
          default: null
          maxLength: 64
          minLength: 1
        streetName:
          type:
          - string
          - 'null'
          default: null
          maxLength: 255
          minLength: 1
        postalCode:
          type:
          - string
          - 'null'
          default: null
        locality:
          type:
          - string
          - 'null'
          default: null
          maxLength: 255
          minLength: 1
        sublocality:
          type:
          - string
          - 'null'
          default: null
          maxLength: 255
          minLength: 1
        country:
          default: null
          oneOf:
          - $ref: '#/components/schemas/Country'
        timezone:
          type:
          - string
          - 'null'
          default: null
        shortAddress:
          type: string
        exposeAddress:
          type: boolean
          default: true
      type: object
    RentalPaymentUnit:
      properties:
        paymentAmount:
          type: string
        id:
          type: integer
        type:
          type: string
        amount:
          type: string
      type: object
    User:
      required:
      - nameFirst
      - nameLast
      - username
      - phone
      - birthday
      properties:
        hasPassword:
          type: boolean
        phoneCountryCode:
          type: string
        id:
          type: integer
        nameFirst:
          type: string
          maxLength: 255
          minLength: 2
        nameMiddle:
          type: string
          maxLength: 255
          minLength: 1
        nameLast:
          type: string
          maxLength: 255
          minLength: 2
        company:
          $ref: '#/components/schemas/Company'
        companyName:
          type: string
          maxLength: 255
          minLength: 1
        username:
          type: string
          maxLength: 255
          minLength: 1
        profilePictureThumbs:
          type: string
        phone:
          type: string
          maxLength: 15
          minLength: 7
        birthday:
          type: string
          format: date-time
        bio:
          type: string
          maxLength: 1500
        oauthProviders:
          type: array
          items:
            $ref: '#/components/schemas/UserOauthProvider'
        address:
          $ref: '#/components/schemas/UserAddress'
        creditScore:
          $ref: '#/components/schemas/UserCreditScore'
        criminalReport:
          $ref: '#/components/schemas/UserCriminalReport'
        stripeCustomer:
          $ref: '#/components/schemas/UserStripeCustomer'
        active:
          type: boolean
          default: true
        fromNotBerryForbiddenCountry:
          type: boolean
          default: false
        verified:
          type: boolean
          default: false
        emailVerified:
          type: boolean
          default: false
        phoneVerified:
          type: boolean
          default: false
        registered:
          type: boolean
          default: true
        emailNotVerifiedAfter:
          type: string
          format: date-time
        lastActiveAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        statusType:
          type: string
          default: regular
          enum:
          - regular
          - premium
          - premium_pending
          - vip
          - vip_pending
        authToken:
          type: string
        rentalHistory:
          type: array
          items:
            $ref: '#/components/schemas/UserRentalHistory'
        deleted:
          type: boolean
          default: false
        rentalPaymentAccount:
          $ref: '#/components/schemas/RentalPaymentAccount'
        newsletterSubscription:
          type: boolean
          default: false
        premiumPartner:
          type: boolean
          default: false
        locale:
          type: string
          default: en_US
          enum:
          - en_US
          - es_ES
        currency:
          type: string
        lengthUnit:
          type: string
          enum:
          - m
          - ft
        isRaiUser:
          type: boolean
          default: false
      type: object
    Company:
      properties:
        id:
          type: integer
        name:
          type: string
          maxLength: 255
          minLength: 1
        phone:
          type: integer
          maxLength: 15
          minLength: 7
        website:
          type: string
          maxLength: 255
          minLength: 1
        logoThumbs:
          type: string
        email:
          type: string
          maxLength: 255
          minLength: 1
        city:
          type: string
          maxLength: 255
          minLength: 1
        countryCode:
          type: string
          maxLength: 2
          minLength: 2
        provider:
          type: string
        externalId:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      type: object
    Rental:
      properties:
        listing:
          $ref: '#/components/schemas/Listing'
        apartmentId:
          title: for iOs compatibility.
          type: integer
        latestPayment:
          $ref: '#/components/schemas/RentalPayment'
        activeSubscription:
          $ref: '#/components/schemas/RentalSubscription'
        id:
          type: integer
        application:
          $ref: '#/components/schemas/ListingApplication'
        moveIn:
          type: string
          format: date-time
        moveOut:
          type: string
          format: date-time
        firstPaymentDate:
          type: string
          format: date-time
        monthlyRentAmount:
          type: string
          maximum: 9999999
          minimum: 1
        monthlyDueDate:
          type: integer
        tenantFirstName:
          type: string
        tenantLastName:
          type: string
        tenantEmail:
          type: string
        address:
          type: string
        unit:
          type: string
        homeowner:
          $ref: '#/components/schemas/User'
        tenant:
          $ref: '#/components/schemas/User'
        status:
          type: string
          default: pending
        isChargeable:
          type: boolean
          default: false
        documents:
          type: array
          items:
            $ref: '#/components/schemas/UserDocument'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      type: object
    State:
      properties:
        id:
          type: integer
        shortName:
          type:
          - string
          - 'null'
          default: null
          maxLength: 200
          minLength: 1
        name:
          type:
          - string
          - 'null'
          default: null
          maxLength: 255
          minLength: 1
        description:
          type: string
      type: object
    Bounds:
      properties:
        northeast:
          $ref: '#/components/schemas/Coordinates'
        southwest:
          $ref: '#/components/schemas/Coordinates'
      type: object
    Rental2:
      properties:
        listing:
          $ref: '#/components/schemas/Listing2'
        apartmentId:
          title: for iOs compatibility.
          type: integer
        activeSubscription:
          $ref: '#/components/schemas/RentalSubscription'
        id:
          type: integer
        application:
          $ref: '#/components/schemas/ListingApplication2'
        moveIn:
          type: string
          format: date-time
        moveOut:
          type: string
          format: date-time
        firstPaymentDate:
          type: string
          format: date-time
        monthlyRentAmount:
          type: string
          maximum: 9999999
          minimum: 1
        monthlyDueDate:
          type: integer
        tenantFirstName:
          type: string
        tenantLastName:
          type: string
        tenantEmail:
          type: string
        address:
          type: string
        unit:
          type: string
        homeowner:
          $ref: '#/components/schemas/User3'
        tenant:
          $ref: '#/components/schemas/User3'
        status:
          type: string
          default: pending
        isChargeable:
          type: boolean
          default: false
        documents:
          type: array
          items:
            $ref: '#/components/schemas/UserDocument'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      type: object
    ApplicantReference:
      required:
      - name
      - relationship
      - phone
      properties:
        id:
          type: integer
        applicant:
          $ref: '#/components/schemas/Applicant'
        name:
          type: string
          maxLength: 255
          minLength: 1
        relationship:
          type: string
          maxLength: 255
          minLength: 1
        email:
          type: string
        phone:
          type: integer
          maxLength: 15
          minLength: 7
      type: object
    VirtualTour:
      required:
      - url
      properties:
        id:
          type: integer
        url:
          type: string
        isMain:
          type: boolean
          default: false
        duration:
          type: integer
        thumbnailUrl:
          type: string
        publishedAt:
          type: string
          format: date-time
      type: object
    Listing2:
      required:
      - name
      - type
      - description
      - externalKey
      properties:
        openHousesEnabled:
          type: boolean
        leadUrl:
          type: boolean
        price:
          type: number
          format: float
        priceTerm:
          type: string
        user:
          $ref: '#/components/schemas/User3'
        active:
          type: boolean
        rented:
          type: boolean
        providerType:
          type: string
        editedByUser:
          title: legacy.
          type: boolean
        expired:
          type: boolean
        promoted:
          type: boolean
        currency:
          type: string
        company:
          $ref: '#/components/schemas/Company'
        expireAt:
          type: integer
        listingStatus:
          type: string
        originalPrice:
          $ref: '#/components/schemas/Price'
        rooms:
          title: legacy.
          type: integer
        traffic:
          title: legacy.
          type: integer
        rentDuration:
          title: legacy.
          type: integer
        unitNumber:
          title: legacy.
          type: string
        levelId:
          title: legacy.
          type: integer
        shapeId:
          title: legacy.
          type: string
        panoramaId:
          title: legacy.
          type: string
        occupant:
          title: legacy.
          type: string
        id:
          type: integer
        apartmentPictures:
          type: array
          items:
            $ref: '#/components/schemas/ListingPicture'
        virtualTours:
          type: array
          items:
            $ref: '#/components/schemas/VirtualTour'
        address:
          $ref: '#/components/schemas/ListingAddress2'
        name:
          type: string
          maxLength: 255
          minLength: 1
        available:
          type: string
          format: date-time
        space:
          type: integer
          maximum: 99999
        lengthUnit:
          type: string
          enum:
          - ft
          - m
        type:
          type: string
          enum:
          - apartment
          - house
          - condo
          - townhouse
          - duplex
          - loft
          - room
          - land
          - other
        deposit:
          type: integer
          maximum: 999999999
          minimum: 0
        utilitiesPrice:
          type: integer
          maximum: 999999999
          minimum: 0
        description:
          type: string
          maxLength: 10000
        isAIDescription:
          type: boolean
          default: false
        deleted:
          type: boolean
          default: false
        syndicated:
          type: boolean
          default: false
        externalUrl:
          type: string
          maxLength: 2048
        seoUrl:
          type: string
        externalKey:
          type: string
        listedAt:
          type: string
          format: date-time
        publishedAt:
          title: Date when listing was published on MLS.
          type: string
          format: date-time
        provider:
          type: string
          default: rentberry
          enum:
          - rentberry
          - apartmentlist
          - apts
          - avail
          - bondnewyork
          - bostonapartments
          - collegestudentapartments
          - commercialpropertykenya
          - eurovilla
          - expedia
          - findroommate
          - flatio
          - fourstay
          - foreclosure
          - fultongrace
          - goplaceit
          - harlington
          - hemavi
          - homestay
          - housinganywhere
          - housestay
          - huurstunt
          - inlife
          - joivy
          - junehome
          - krn
          - levit
          - livinfrance
          - mapaprop
          - morningcroissant
          - mystate
          - navent
          - onthemarket
          - openimmo
          - padfinders
          - padsplit
          - parisattitude
          - pepehousing
          - pin
          - realbird
          - reallyo
          - realtymx
          - realtyww
          - rentalsource
          - rentengine
          - renthia
          - rentinsingapore
          - rentola
          - roomless
          - roomster
          - samtrygg
          - siamrealestate
          - speedhome
          - spotahome
          - 3dapartment
          - turbotenant
          - uniplaces
          - wunderflats
          - yourrentals
          - yucalive
          - xml2u
          - ziptoss
          - cheznestor
          - coliving
          - domaingroup
          - erasmusu
          - explorastay
          - rentcatalogue
          - homelike
          - hyrenbostad
          - lejebolig
          - listhub
          - properstar
          - studentsglobalrelocation
          - zappyrent
          - zeusliving
        amenities:
          type: array
          items:
            enum:
            - gym
            - pool
            - garden
            - parking
            - doorman
            - storage
            - balcony
            - elevator
            - fireplace
            - highRise
            - roofDeck
            - furnished
            - dishwasher
            - beachView
            - washerUnit
            - hardwoodFloors
            - airConditioning
            - wheelchairAccessible
            - attic
            - basement
            - bbqArea
            - deck
            - disabledAccess
            - garageParking
            - greenhouse
            - intercom
            - lawn
            - new
            - secondarySuite
            - security
            - waterfront
            - wired
            - newConstruction
            - securitySystem
            - hotTube
            - studentFriendly
            - utilitiesIncluded
            - energyEfficient
            - solarPowered
            - kitchen
            - privateKitchen
            - sharedKitchen
            - internet
            - wifi
            - tv
            - localTv
            - cableTv
            - computer
            - laptopWorkspace
            - hotTube
            - tub
            - iron
            - towels
            - ironingBoard
            - toiletries
            - guestToilet
            - buzzerWirelessIntercom
            - privateEntrance
            - hairDrye

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