VaultRE Properties API

Operations related to properties

Operations 131

POST /appraisal Add/Update an appraisal #
POST /listing Add/Update a listing #
POST /unconditional Add/Update an unconditional sale #
POST /settlement Add/Update a settlement #
POST /withdrawn Add/Update a withdrawn listing #
GET /properties Retrieve a list of properties #
GET /properties/{id} Retrieve a single property #
DELETE /properties/{id} Delete a property #
GET /properties/{id}/notes Retrieve a list of notes attached to this property #
POST /properties/{id}/notes Add a note to this property #
GET /properties/{propertyid}/notes/{id} Retrieve a single property note #
PUT /properties/{propertyid}/notes/{id} Update a property note #
DELETE /properties/{propertyid}/notes/{id} Delete a property note #
GET /properties/{id}/photos Retrieve a list of photos for this property #
POST /properties/{id}/photos Upload a new photo to this property #
DELETE /properties/{id}/photos Delete multiple photos from this property #
GET /properties/{propertyid}/photos/{id} Retrieve a single photo for this property #
DELETE /properties/{propertyid}/photos/{id} Delete a photo attached to this property #
PUT /properties/{propertyid}/photos/{id} Update photo metadata #
GET /properties/{propertyid}/photos/{id}/tags Retrieve a list of tags for this property photo #
GET /properties/{id}/tags Retrieve a list of tags for this property #
GET /properties/{id}/categories Retrieve a list of categories to which this property belongs #
GET /properties/{id}/activityLog Retrieve the activity log for a property #
POST /properties/{id}/activityLog Add a property activity note #
GET /properties/{id}/files Retrieve a list of files attached to this property #
GET /properties/{id}/{salelease}/{lifeid}/files Retrieve a list of files attached to this property life #
POST /properties/{id}/{salelease}/{lifeid}/files Attach a file to this property life #
GET /properties/{propertyid}/{salelease}/{lifeid}/files/{id} Retrieve a single file attached to this property life #
DELETE /properties/{propertyid}/{salelease}/{lifeid}/files/{id} Delete a single file attached to this property life #
GET /properties/{id}/{salelease}/{lifeid}/feedback Retrieve a list of property feedback attached to this life #
POST /properties/{id}/{salelease}/{lifeid}/feedback Attach feedback to this property life #
GET /properties/{propertyid}/{salelease}/{lifeid}/feedback/{id} Retrieve a property feedback item attached to this life #
PUT /properties/{propertyid}/{salelease}/{lifeid}/feedback/{id} Update a feedback item #
DELETE /properties/{propertyid}/{salelease}/{lifeid}/feedback/{id} Delete a property feedback item #
GET /properties/{id}/{salelease}/{lifeid}/openHomes Retrieve a list of open homes attached to this life #
POST /properties/{id}/{salelease}/{lifeid}/openHomes Create a new open home for this property life #
GET /properties/{propertyid}/{salelease}/{lifeid}/openHomes/{id} Retrieve a single open home attached to this life #
PUT /properties/{propertyid}/{salelease}/{lifeid}/openHomes/{id} Update an open home for this property life #
DELETE /properties/{propertyid}/{salelease}/{lifeid}/openHomes/{id} Delete an open home #
GET /properties/{id}/sale/{lifeid}/owners Retrieve a list of owners attached to this property life #
PUT /properties/{id}/sale/{lifeid}/owners Update owners for this property life #
POST /properties/{id}/sale/{lifeid}/owners Attach an owner to this property life #
GET /properties/{id}/lease/{lifeid}/landlords Retrieve a list of landlords attached to this property life #
PUT /properties/{id}/lease/{lifeid}/landlords Update landlords for this property life #
POST /properties/{id}/lease/{lifeid}/landlords Attach a landlord to this property life #
GET /properties/{id}/sale/{lifeid}/purchasers Retrieve a list of purchasers attached to this property life #
PUT /properties/{id}/sale/{lifeid}/purchasers Update purchasers for this property life #
POST /properties/{id}/sale/{lifeid}/purchasers Attach a purchaser to this property life #
GET /properties/{id}/lease/{lifeid}/tenancy/{tenancyid}/tenants Retrieve a list of tenants attached to this tenancy #
PUT /properties/{id}/lease/{lifeid}/tenancy/{tenancyid}/tenants Update tenants for this tenancy #
POST /properties/{id}/lease/{lifeid}/tenancy/{tenancyid}/tenants Attach a tenant to this tenancy #
GET /properties/{id}/features Retrieve features for this property #
PUT /properties/{id}/features Update features for this property #
GET /properties/{class}/{salelease}/{id}/custom Retrieve a list of custom fields for a given property #
PUT /properties/{class}/{salelease}/{id}/custom Update the custom fields for this property #
GET /properties/{class}/{salelease}/upcomingOpenHomes Retrieve a list of upcoming open homes #
GET /properties/{salelease} Retrieve a list of sale or lease properties #
POST /properties/{id}/photos/upload Upload a new photo to this property #
GET /properties/{id}/{salelease}/{lifeid}/matchingContacts Retrieve a list of contacts with requirements matching this property #
POST /properties/{id}/{salelease}/{lifeid}/files/upload Attach a file to this property life #
GET /properties/{id}/{salelease}/{lifeid}/feedback/summary Retrieve a summary of property feedback feedback attached to this life #
DELETE /properties/{propertyid}/lease/{lifeid}/landlords/{id} Remove a landlord from this property life #
DELETE /properties/{propertyid}/lease/{lifeid}/tenancy/{tenancyid}/tenants/{id} Remove a tenant from this property life #
DELETE /properties/{propertyid}/sale/{lifeid}/owners/{id} Remove an owner from this property life #
DELETE /properties/{propertyid}/sale/{lifeid}/purchasers/{id} Remove a purchaser from this property life #
GET /properties/{id}/sale/{lifeid}/offerConditions Retrieve a list of offer conditions for this property life #
GET /properties/{propertyid}/sale/{lifeid}/offerConditions/{id} Retrieve an offer condition for this property life #
PUT /properties/{propertyid}/sale/{lifeid}/offerConditions/{id} Update a property's offer condition #
PUT /properties/{propertyid}/sale/{lifeid}/offerConditions/{id}/complete Complete a property's offer condition #
PUT /properties/{propertyid}/sale/{lifeid}/offerConditions/{id}/uncomplete Uncomplete a property's offer condition #
GET /properties/lookup/{propertyReference} Look up property information based on property reference #
PUT /properties/{id}/sale/statusChange/listing Convert a prospect or appraisal sale property to listing status #
PUT /properties/{id}/lease/statusChange/management Convert a prospect or appraisal lease property to management status #
GET /properties/{id}/{salelease}/{lifeid}/interest Retrieve a list of contacts and their interest related this property life #
GET /properties/{id}/{salelease}/{lifeid}/interest/{contactid} Retrieve a single contact's interest in this property life #
PUT /properties/{id}/{salelease}/{lifeid}/interest/{contactid} Update a contact's interest in this property life #
GET /properties/{id}/{salelease}/{lifeid}/enquirySources Retrieve a list of contacts and their source of enquiry related this property life #
GET /properties/{id}/{salelease}/{lifeid}/enquirySources/{contactid} Retrieve a single contact's source of enquiry for this property life #
PUT /properties/{id}/{salelease}/{lifeid}/enquirySources/{contactid} Update a contact's source of enquiry for this property life #
GET /contacts/currentTenants Retrieve a list of current tenants across all properties #
GET /contacts/currentLandlords Retrieve a list of current landlords across all properties #
GET /contacts/currentOwners Retrieve a list of current owners/vendors across all sale properties #
GET /contacts/currentPurchasers Retrieve a list of current purchasers across all sale properties #
GET /properties/{propertyid}/lease/{lifeid}/maintenance Retrieve a list of maintenance jobs for this property life #
POST /properties/{propertyid}/lease/{lifeid}/maintenance Create a maintenance job #
GET /properties/{propertyid}/lease/{lifeid}/maintenance/{jobid} Retrieve a single maintenance job #
PUT /properties/{propertyid}/lease/{lifeid}/maintenance/{jobid} Update a single maintenance job #
DELETE /properties/{propertyid}/lease/{lifeid}/maintenance/{jobid} Delete a maintenance job #
POST /properties/{propertyid}/lease/{lifeid}/maintenance/{jobid}/photos Add a maintenance job photo #
GET /properties/{propertyid}/lease/{lifeid}/maintenance/{jobid}/photos/{id} Retrieve a single maintenance job photo #
DELETE /properties/{propertyid}/lease/{lifeid}/maintenance/{jobid}/photos/{id} Delete a maintenance job photo #
GET /properties/{propertyid}/lease/{lifeid}/maintenance/{jobid}/requests Retrieve a list of requests for a maintenance job #
POST /properties/{propertyid}/lease/{lifeid}/maintenance/{jobid}/requests Create a maintenance job request #
PUT /properties/{propertyid}/lease/{lifeid}/maintenance/{jobid}/requests/{id}/initiateWorkOrder Initiate a maintenance work order #
PUT /properties/{propertyid}/lease/{lifeid}/maintenance/{jobid}/requests/{id}/complete Complete a maintenance work order #
GET /properties/{propertyid}/lease/{lifeid}/maintenance/{jobid}/notes Retrieve a list of notes for a maintenance job #
GET /properties/{propertyid}/lease/{lifeid}/tenancy/{id}/inspections Retrieve a list of inspections for a tenancy #
POST /properties/{propertyid}/lease/{lifeid}/tenancy/{id}/inspections Create an inspection #
GET /properties/{propertyid}/lease/{lifeid}/tenancy/{tenancyid}/inspections/{id} Retrieve a single inspection for a tenancy #
PUT /properties/{propertyid}/lease/{lifeid}/tenancy/{tenancyid}/inspections/{id} Update an inspection #
DELETE /properties/{propertyid}/lease/{lifeid}/tenancy/{tenancyid}/inspections/{id} Delete an inspection #
PUT /property/flush Trigger a property to be re-sent to certain portal sites #
GET /properties/{propertyid}/saleHistory Retrieve the full sale history for a property #
POST /properties/{propertyid}/{salelease}/{lifeid}/scheduledViewing Add a Scheduled Viewing #
GET /properties/{propertyid}/{salelease}/{lifeid}/scheduledViewing Retrieve a list of scheduled viewings for this life #
GET /properties/categories Retrieve a list of property category mappings across all properties #
GET /properties/sale Retrieve a list of sale properties #
GET /properties/sale/fallenSaleWithdrawn Retrieve a list of fallen or withdrawn property sales #
GET /properties/lease Retrieve a list of lease properties #
PUT /properties/{id}/photos/order Reorder property photos #
GET /properties/{propertyid}/sale/{lifeid}/trustledger/transactions Retrieve a list of trust ledger transactions for this property sale life #
GET /properties/{propertyid}/keys Retrieve a list of keys for this property #
POST /properties/{propertyid}/keys Add a new key to this property #
GET /properties/{propertyid}/keys/{id} Retrieve a key from this property #
PUT /properties/{propertyid}/keys/{id} Update a property key #
GET /properties/{id}/{salelease}/{lifeid}/portals Retrieve a list of portal sites to which this listing is published #
GET /properties/{id}/{salelease}/{lifeid}/portalIds Retrieve a list of property portal IDs #
GET /properties/{propertyid}/alarmDetails Retrieve a list of alarm details for a property #
GET /properties/{propertyid}/{salelease}/alarmDetails Retrieve a list of alarm details for a property life #
GET /properties/{id}/{salelease}/{lifeid}/rooms Retrieve a list of rooms defined for this property life #
GET /properties/{id}/sale/{lifeid}/solicitors Retrieve purchaser and vendor solicitors defined for this property life #
GET /properties/externalRefs/lookup Retrieve properties from an external reference #
GET /properties/{propertyid}/listingConfigurations Retrieve a list of listing configurations for the given property #
GET /properties/{propertyid}/strataProperties Retrieve a list of strata properties for the given property #
GET /properties/{propertyid}/projectProperties Retrieve a list of project properties for the given property #
GET /properties/{propertyid}/{salelease}/{lifeid}/qrcode Retrieve a check-in QR code for the given property life #
GET /properties/{propertyid}/{salelease}/{lifeid}/hazards Retrieve a list of hazards for a given property life #
GET /properties/{propertyid}/{salelease}/{lifeid}/externalFeedback/{id} Retrieve a single external feedback for a given property life #
PUT /properties/{propertyid}/{salelease}/{lifeid}/externalFeedback/{id} Update an external feedback for a given property life #
GET /properties/{propertyid}/{salelease}/{lifeid}/externalFeedback Retrieve a list of external feedback for a given property life #
POST /properties/{propertyid}/{salelease}/{lifeid}/externalFeedback Add an External Feedback #

Documentation

Specifications

Code Examples

Other Resources

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/vaultre-properties-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 email required.

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

OpenAPI Specification

vaultre-properties-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vaultre Properties API
  contact:
    name: VaultRE
    url: https://www.vaultre.com.au
    email: api@vaultre.com.au
  version: '1.0'
  description: 'Operations tagged properties across 4 of this provider''s published API definitions: vaultre-aggregator-api-v1-0-openapi.yml, vaultre-api-v1-1-openapi.yml, vaultre-api-v1-2-openapi.yml, vaultre-api-v1-3-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://aggregator.api.vaultre.com.au/api/v1.0
- url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
- url: https://ap-southeast-2.api.vaultre.com.au/api/v1.2
- url: https://ap-southeast-2.api.vaultre.com.au/api/v1.3
tags:
- name: properties
  description: Operations related to properties
paths:
  /appraisal:
    post:
      tags:
      - properties
      summary: Add/Update an appraisal
      description: Add/Update an appraisal
      operationId: addUpdateAppraisal
      requestBody:
        description: Appraisal object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Appraisal'
        required: true
      responses:
        202:
          description: Data received successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError'
        400:
          description: Invalid data payload
          content: {}
      x-codegen-request-body-name: body
      security:
      - ApiKey: []
      - Bearer: []
    servers:
    - url: https://aggregator.api.vaultre.com.au/api/v1.0
  /listing:
    post:
      tags:
      - properties
      summary: Add/Update a listing
      description: Add/Update a listing
      operationId: addUpdateListing
      requestBody:
        description: Listing object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Listing'
        required: true
      responses:
        202:
          description: Data received successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError'
        400:
          description: Invalid data payload
          content: {}
      x-codegen-request-body-name: body
      security:
      - ApiKey: []
      - Bearer: []
    servers:
    - url: https://aggregator.api.vaultre.com.au/api/v1.0
  /unconditional:
    post:
      tags:
      - properties
      summary: Add/Update an unconditional sale
      description: Add/Update an unconditional sale
      operationId: addUpdateUnconditional
      requestBody:
        description: Unconditional object.<br />The sum of commissionSplits[].amountExGST must equal grossCommissionExGST.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Unconditional'
        required: true
      responses:
        202:
          description: Data received successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError'
        400:
          description: Invalid data payload
          content: {}
      x-codegen-request-body-name: body
      security:
      - ApiKey: []
      - Bearer: []
    servers:
    - url: https://aggregator.api.vaultre.com.au/api/v1.0
  /settlement:
    post:
      tags:
      - properties
      summary: Add/Update a settlement
      description: Add/Update a settlement
      operationId: addUpdateSettlement
      requestBody:
        description: Settlement object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Settlement'
        required: true
      responses:
        202:
          description: Data received successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError'
        400:
          description: Invalid data payload
          content: {}
      x-codegen-request-body-name: body
      security:
      - ApiKey: []
      - Bearer: []
    servers:
    - url: https://aggregator.api.vaultre.com.au/api/v1.0
  /withdrawn:
    post:
      tags:
      - properties
      summary: Add/Update a withdrawn listing
      description: Add/Update a withdrawn listing
      operationId: addUpdateWithdrawn
      requestBody:
        description: Withdrawn object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Withdrawn'
        required: true
      responses:
        202:
          description: Data received successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError'
        400:
          description: Invalid data payload
          content: {}
      x-codegen-request-body-name: body
      security:
      - ApiKey: []
      - Bearer: []
    servers:
    - url: https://aggregator.api.vaultre.com.au/api/v1.0
  /properties:
    get:
      tags:
      - properties
      summary: Retrieve a list of properties
      description: Retrieve a list of properties
      operationId: getProperties
      parameters:
      - $ref: '#/components/parameters/modifiedSince'
      - $ref: '#/components/parameters/modifiedBefore'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pagesize'
      - name: sort
        in: query
        description: Field by which to sort the results.
        schema:
          type: string
          enum:
          - inserted
          - modified
      - $ref: '#/components/parameters/sortOrder'
      responses:
        200:
          description: Properties retrieved
          content: {}
      security:
      - Api-Key: []
        Bearer: []
    servers:
    - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
  /properties/{id}:
    get:
      tags:
      - properties
      summary: Retrieve a single property
      description: Retrieve a single property
      operationId: getProperty
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: Property retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyExtended'
      security:
      - Api-Key: []
        Bearer: []
    delete:
      tags:
      - properties
      summary: Delete a property
      description: Delete a property
      operationId: deleteProperty
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      responses:
        204:
          description: Property deleted
          content: {}
        400:
          description: Invalid data
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SuccessOrError_2'
      security:
      - Api-Key: []
        Bearer: []
    servers:
    - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
  /properties/{id}/notes:
    get:
      tags:
      - properties
      summary: Retrieve a list of notes attached to this property
      description: Retrieve a list of notes attached to this property
      operationId: getPropertyNotes
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: types
        in: query
        description: Filter notes with type IDs
        style: form
        explode: false
        schema:
          type: array
          items:
            type: integer
            format: int64
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pagesize'
      - name: sort
        in: query
        description: Field by which to sort the results.
        schema:
          type: string
          enum:
          - inserted
      - $ref: '#/components/parameters/sortOrder'
      responses:
        200:
          description: Property notes retrieved
          content: {}
      security:
      - Api-Key: []
        Bearer: []
    post:
      tags:
      - properties
      summary: Add a note to this property
      description: Add a note to this property
      operationId: addPropertyNote
      requestBody:
        description: Property note object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPropertyNote'
        required: true
      responses:
        201:
          description: Property note created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyNote'
        400:
          description: Invalid data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError_2'
      security:
      - Api-Key: []
        Bearer: []
      x-codegen-request-body-name: body
    servers:
    - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
  /properties/{propertyid}/notes/{id}:
    get:
      tags:
      - properties
      summary: Retrieve a single property note
      description: Retrieve a single property note
      operationId: getPropertyNote
      parameters:
      - name: propertyid
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: id
        in: path
        description: ID of the note
        required: true
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: Property note retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyNote'
      security:
      - Api-Key: []
        Bearer: []
    put:
      tags:
      - properties
      summary: Update a property note
      description: Update a property note
      operationId: updatePropertyNote
      parameters:
      - name: propertyid
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: id
        in: path
        description: ID of the note
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: Property Note object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePropertyNote'
        required: true
      responses:
        200:
          description: Note updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactNote'
        400:
          description: Invalid data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError_2'
        403:
          description: User does not have permission to modify property notes or note is read-only
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError_2'
      security:
      - Api-Key: []
        Bearer: []
      x-codegen-request-body-name: body
    delete:
      tags:
      - properties
      summary: Delete a property note
      description: Delete a property note
      operationId: deletePropertyNote
      parameters:
      - name: propertyid
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: id
        in: path
        description: ID of the note
        required: true
        schema:
          type: integer
          format: int64
      responses:
        204:
          description: Property Note deleted
          content: {}
        400:
          description: Invalid data
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SuccessOrError_2'
        403:
          description: User does not have permission to delete property notes or note is read-only
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SuccessOrError_2'
      security:
      - Api-Key: []
        Bearer: []
    servers:
    - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
  /properties/{id}/photos:
    get:
      tags:
      - properties
      summary: Retrieve a list of photos for this property
      description: Retrieve a list of photos for this property
      operationId: getPropertyPhotos
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pagesize'
      responses:
        200:
          description: Property photos retrieved
          content: {}
      security:
      - Api-Key: []
        Bearer: []
    post:
      tags:
      - properties
      summary: Upload a new photo to this property
      description: Upload a new photo to this property
      operationId: addPropertyPhoto
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - photo
              - published
              - type
              properties:
                photo:
                  type: string
                  description: The photo to be uploaded (GIF/PNG/JPG only)
                  format: binary
                caption:
                  type: string
                  description: The caption for the photo
                published:
                  type: boolean
                  description: Is the photo published or unpublished
                type:
                  type: string
                  description: The type of photo
                  enum:
                  - Photograph
                  - Floorplan
        required: true
      responses:
        201:
          description: Photo uploaded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyPhoto'
        400:
          description: Invalid data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError_2'
      security:
      - Api-Key: []
        Bearer: []
    delete:
      tags:
      - properties
      summary: Delete multiple photos from this property
      description: Delete multiple photos from this property in a single operation. This endpoint allows bulk deletion of up to 50 photos at once.
      operationId: deletePropertyPhotos
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: Bulk delete request containing list of photo IDs
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PropertyPhotoBulkDeleteRequest'
        required: true
      responses:
        200:
          description: Bulk delete completed (some photos may have failed)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyPhotoBulkDeleteResponse'
        400:
          description: Some or all photos could not be deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyPhotoBulkDeleteResponse'
        403:
          description: User does not have permission to delete photos from this property
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError_4'
        404:
          description: Property not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError_4'
        422:
          description: Invalid input data (e.g., empty items list, too many items)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError_4'
      security:
      - Api-Key: []
        Bearer: []
    servers:
    - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
  /properties/{propertyid}/photos/{id}:
    get:
      tags:
      - properties
      summary: Retrieve a single photo for this property
      description: Retrieve a single photo for this property
      operationId: getPropertyPhoto
      parameters:
      - name: propertyid
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: id
        in: path
        description: ID of the photo
        required: true
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: Property photo retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyPhoto'
      security:
      - Api-Key: []
        Bearer: []
    delete:
      tags:
      - properties
      summary: Delete a photo attached to this property
      description: Delete a photo attached to this property
      operationId: deletePropertyPhoto
      parameters:
      - name: propertyid
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: id
        in: path
        description: ID of the photo
        required: true
        schema:
          type: integer
          format: int64
      responses:
        204:
          description: Property photo deleted
          content: {}
        400:
          description: Invalid data
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SuccessOrError_2'
      security:
      - Api-Key: []
        Bearer: []
    put:
      tags:
      - properties
      summary: Update photo metadata
      description: Update a property photo's caption, published status, or photo type (Photograph/Floorplan)
      operationId: updatePropertyPhoto
      parameters:
      - name: propertyid
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: id
        in: path
        description: ID of the photo
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: Photo metadata to update
        content:
          application/json:
            schema:
              type: object
              properties:
                caption:
                  type: string
                  description: Updated caption for the photo
                published:
                  type: boolean
                  description: Whether the photo should be published to web
                type:
                  type: string
                  description: Photo type
                  enum:
                  - Photograph
                  - Floorplan
            examples:
              setAsFloorplan:
                summary: Mark photo as floorplan
                value:
                  type: Floorplan
                  caption: Ground floor plan
              setAsPhoto:
                summary: Mark as standard photo
                value:
                  type: Photograph
              updateCaption:
                summary: Update caption only
                value:
                  caption: Updated living room photo
      responses:
        200:
          description: Property photo updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyPhoto'
        400:
          description: Invalid data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError_4'
        403:
          description: User does not have permission to update this property
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError_4'
        404:
          description: Property or photo not found
          content: {}
        422:
          description: Validation error - empty or malformed request body
          content:
            application/json:
              schema:
                type: object
                properties:
                  messages:
                    type: object
        500:
          description: Unexpected server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError_4'
      security:
      - Api-Key: []
        Bearer: []
    servers:
    - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
  /properties/{propertyid}/photos/{id}/tags:
    get:
      tags:
      - properties
      summary: Retrieve a list of tags for this property photo
      description: Retrieve a list of tags for this property photo, derived from Machine Learning analysis of property photos
      operationId: getPropertyPhotoTags
      parameters:
      - name: propertyid
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: id
        in: path
        description: ID of the photo
        required: true
        schema:
          type: integer
          format: int64
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pagesize'
      - name: sort
        in: query
        description: Field by which to sort the results.
        schema:
          type: string
          enum:
          - name
          - confidence
      - $ref: '#/components/parameters/sortOrder'
      - name: minimumConfidence
        in: query
        description: Only return tags with a confidence greater than or equal to this number
        schema:
          type: number
          format: float
      - name: maximumConfidence
        in: query
        description: Only return tags with a confidence less than or equal to this number
        schema:
          type: number
          format: float
      responses:
        200:
          description: Photo tags retrieved
          content: {}
      security:
      - Api-Key: []
        Bearer: []
    servers:
    - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
  /properties/{id}/tags:
    get:
      tags:
      - properties
      summary: Retrieve a list of tags for this property
      description: Retrieve a list of tags for this property, derived from Machine Learning analysis of property photos
      operationId: getPropertyTags
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pagesize'
      - name: sort
        in: query
        description: Field by which to sort the results.
        schema:
          type: string
          enum:
          - name
          - confidence
      - $ref: '#/components/parameters/sortOrder'
      - name: minimumConfidence
        in: query
        description: Only return tags with a confidence greater than or equal to this number
        schema:
          type: number
          format: float
      - name: maximumConfidence
        in: query
        description: Only return tags with a confidence less than or equal to this number
        schema:
          type: number
          format: float
      responses:
        200:
          description: Property tags retrieved
          content: {}
      security:
      - Api-Key: []
        Bearer: []
    servers:
    - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
  /properties/{id}/categories:
    get:
      tags:
      - properties
      summary: Retrieve a list of categories to which this property belongs
      description: Retrieve a list of categories to which this property belongs
      operationId: getPropertyCategories
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pagesize'
      - name: sort
        in: query
        description: Field by which to sort the results.
        schema:
          type: string
          enum:
          - name
      - $ref: '#/components/parameters/sortOrder'
      responses:
        200:
          description: Property categories retrieved
          content: {}
      security:
      - Api-Key: []
        Bearer: []
    servers:
    - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
  /properties/{id}/activityLog:
    get:
      tags:
      - properties
      summary: Retrieve the activity log for a property
      description: Retrieve the activity log for a property
      operationId: getPropertyActivityLog
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pagesize'
      responses:
        200:
          description: Activity Log retrieved
          content: {}
      security:
      - Api-Key: []
        Bearer: []
    post:
      tags:
      - properties
      summary: Add a property activity note
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      description: Add a property activity note
      operationId: addPropertyActivityNote
      requestBody:
        description: Activity Note Details
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPropertyActivityNote'
        required: true
      responses:
        201:
          description: Activity Note Added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError_4'
      security:
      - Api-Key: []
        Bearer: []
      x-codegen-request-body-name: body
    servers:
    - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
  /properties/{id}/files:
    get:
      tags:
      - properties
      summary: Retrieve a list of files attached to this property
      description: Retrieve a list of files attached to this property
      operationId: getPropertyFiles
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pagesize'
      - name: sort
        in: query
        description: Field by which to sort the results.
        schema:
          type: string
          enum:
          - inserted
          - modified
      - $ref: '#/components/parameters/sortOrder'
      responses:
        200:
          description: Property files retrieved
          content: {}
      security:
      - Api-Key: []
        Bearer: []
    servers:
    - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
  /properties/{id}/{salelease}/{lifeid}/files:
    get:
      tags:
      - properties
      summary: Retrieve a list of files attached to this property life
      description: Retrieve a list of files attached to this property life
      operationId: getPropertyFilesLife
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: lifeid
        in: path
        description: ID of the property life
        required: true
        schema:
          type: integer
          format: int64
      - name: salelease
        in: path
        description: Sale or lease life record
        required: true
        schema:
          type: string
          enum:
          - sale
          - lease
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pagesize'
      - name: sort
        in: query
        description: Field by which to sort the results.
        schema:
          type: string
          enum:
          - inserted
          - modified
      - $ref: '#/components/parameters/sortOrder'
      responses:
        200:
          description: Property files retrieved
          content: {}
      security:
      - Api-Key: []
        Bearer: []
    post:
      tags:
      - properties
      summary: Attach a file to this property life
      description: Attach a file to this property life
      operationId: addPropertyFileLife
      parameters:
      - name: id
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: lifeid
        in: path
        description: ID of the property life
        required: true
        schema:
          type: integer
          format: int64
      - name: salelease
        in: path
        description: Sale or lease life record
        required: true
        schema:
          type: string
          enum:
          - sale
          - lease
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - file
              properties:
                file:
                  type: string
                  description: The file to be uploaded
                  format: binary
        required: true
      responses:
        201:
          description: File attached successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyFile'
        400:
          description: Invalid data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError_2'
      security:
      - Api-Key: []
        Bearer: []
    servers:
    - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1
  /properties/{propertyid}/{salelease}/{lifeid}/files/{id}:
    get:
      tags:
      - properties
      summary: Retrieve a single file attached to this property life
      description: Retrieve a single file attached to this property life
      operationId: getPropertyFileLife
      parameters:
      - name: propertyid
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: lifeid
        in: path
        description: ID of the property life
        required: true
        schema:
          type: integer
          format: int64
      - name: salelease
        in: path
        description: Sale or lease life record
        required: true
        schema:
          type: string
          enum:
          - sale
          - lease
      - name: id
        in: path
        description: ID of the file
        required: true
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: Property file retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyFile'
      security:
      - Api-Key: []
        Bearer: []
    delete:
      tags:
      - properties
      summary: Delete a single file attached to this property life
      description: Delete a single file attached to this property life
      operationId: deletePropertyFileLife
      parameters:
      - name: propertyid
        in: path
        description: ID of the property
        required: true
        schema:
     

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