VaultRE API

The core VaultRE REST API - the open API a third-party developer integrates an agency website or application against. Version 1.3 documents 324 paths and 453 operations covering contacts, properties across every life type (residential, commercial, rural, land, business, holiday rental, livestock, clearing sales), listings and photos, enquiries, offers and offer conditions, open homes, feedback, appraisals, calendar and tasks, inspections, maintenance and suppliers, tenancies, invoices, deals, campaigns and advertising, templates, merge fields, SMS and email messaging, AML checks, keys, suburbs and precincts, an event-stream poll endpoint, CoreLogic property and AVM lookups, and REINZ sales reporting for New Zealand. Every request carries both an integrator X-Api-Key header and a per-account Bearer access token; the granted scopes on a token are readable from GET /scopes.

Documentation

Specifications

Code Examples

Other Resources

OpenAPI Specification

vaultre-api-v1-3-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: VaultRE
  description: Please ensure all API requests use HTTP/1.1. See https://github.com/VaultGroup/api-samples
    for code samples.
  contact:
    name: VaultRE
    url: https://www.vaultre.com.au
    email: api@vaultre.com.au
  version: "1.3"
servers:
- url: https://ap-southeast-2.api.vaultre.com.au/api/v1.3
tags:
- name: advertising
  description: Operations related to property and agent advertising
- name: categories
  description: Operations related to categories
- name: lists
  description: Operations related to distribution lists
- name: contacts
  description: Operations related to contacts
- name: precincts
  description: Operations related to precincts
- name: user
  description: Operations related to users
- name: properties
  description: Operations related to properties
- name: conjunctionals
  description: Operations related to conjunctional property deals
- name: openhomes
  description: Operations related to open homes
- name: propertyOfferConditions
  description: Operations related to property offer conditions
- name: propertyOffer
  description: Operations related to property offers
- name: feedback
  description: Operations related to property feedback
- name: residentialProperties
  description: Operations related to residential properties
- name: ruralProperties
  description: Operations related to rural properties
- name: commercialProperties
  description: Operations related to commercial properties
- name: businessProperties
  description: Operations related to business properties
- name: landProperties
  description: Operations related to land properties
- name: holidayRentalProperties
  description: Operations related to holiday rental properties
- name: livestockProperties
  description: Operations related to livestock properties
- name: clearingSalesProperties
  description: Operations related to clearing sales properties
- name: search
  description: Operations related to performing searches
- name: suggest
  description: Operations related to suggest services
- name: buildings
  description: Operations related to buildings
- name: calendar
  description: Operations related to calendar events
- name: tasks
  description: Operations related to tasks
- name: corelogic
  description: Operations related to CoreLogic
- name: reinz
  description: Operations related to REINZ
- name: types
  description: Operations related to various VaultRE object types
- name: enquiries
  description: Operations related to listing enquiries
- name: fmsleads
  description: Operations related to FMS leads
- name: propertyStats
  description: Operations related to property portal stats
- name: integrator
  description: Special endpoints for access by integrating partners
- name: sms
  description: Operations related to SMS
- name: email
  description: Operations related to email
- name: templates
  description: Operations related to SMS and email templates
- name: mergeFields
  description: Operations related to merge fields for SMS and email templates
- name: maintenance
  description: Operations related to maintenance jobs
- name: inspections
  description: Operations related to inspections
- name: suppliers
  description: Operations related to creditors / suppliers
- name: bulk
  description: Bulk operations
- name: deals
  description: Operations related to commercial deals
- name: suburbs
  description: Operations related to suburbs
- name: messages
  description: Operations related to franchise and user messages
- name: keys
  description: Operations related to property keys
- name: eventStream
  description: Operations related to the event stream
- name: campaigns
  description: Operations related to marketing campaigns
- name: tenancies
  description: Operations related to tenancies
- name: invoices
  description: Operations related to invoices
- name: aml
  description: Operations related to AML checks
paths:

  /eventStream:
    get:
      tags:
      - eventStream
      summary: Poll the event stream
      description: Retrieve events from the event stream.
      operationId: getEventStream
      parameters:
      - name: eventsSince
        in: query
        description: Retrieve events since this date. Note that events expire after 30 days.
        schema:
          type: string
          format: date-time
      - name: cursor
        in: query
        description: Used for pagination. Retrieve results starting from this cursor position.
        schema:
          type: string
      responses:
        200:
          description: Events retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/EventStreamItem'
                  urls:
                    type: object
                    properties:
                      next:
                        type: string
      security:
      - Api-Key: []
        Bearer: []
  /integrator/accounts:
    get:
      tags:
      - integrator
      summary: Retrieve a list of accounts linked to this integrator
      description: Retrieve a list of accounts linked to this integrator
      operationId: getIntegratorAccounts
      parameters:
      - $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: Accounts retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Account'
                  totalItems:
                    type: integer
                    format: int64
                  totalPages:
                    type: integer
                    format: int64
                  urls:
                    $ref: '#/components/schemas/Urls'
      security:
      - Api-Key: []
        Bearer: []
  /integrator/accounts/{id}:
    get:
      tags:
      - integrator
      summary: Retrieve an account linked to this integrator
      description: Retrieve an account linked to this integrator
      operationId: getIntegratorAccount
      parameters:
      - name: id
        in: path
        description: ID of the account
        required: true
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: Account retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
      security:
      - Api-Key: []
        Bearer: []
  /integrator/accounts/{id}/users:
    get:
      tags:
      - integrator
      summary: Retrieve a list of users for this account
      description: Retrieve a list of users for this account
      operationId: getIntegratorAccountUsers
      parameters:
      - name: id
        in: path
        description: ID of the account
        required: true
        schema:
          type: integer
          format: int64
      - name: email
        in: query
        description: Filter users matching the given email address
        schema:
          type: string
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pagesize'
      - name: sort
        in: query
        description: Field by which to sort the results.
        schema:
          type: string
          enum:
          - firstName
          - lastName
      - $ref: '#/components/parameters/sortOrder'
      responses:
        200:
          description: Users retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
                  totalItems:
                    type: integer
                    format: int64
                  totalPages:
                    type: integer
                    format: int64
                  urls:
                    $ref: '#/components/schemas/Urls'
      security:
      - Api-Key: []
        Bearer: []
  /integrator/accounts/{accountid}/users/{id}:
    get:
      tags:
      - integrator
      summary: Retrieve a user for this account
      description: Retrieve a user for this account
      operationId: getIntegratorAccountUser
      parameters:
      - name: accountid
        in: path
        description: ID of the account
        required: true
        schema:
          type: integer
          format: int64
      - name: id
        in: path
        description: ID of the user
        required: true
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: User retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
      security:
      - Api-Key: []
        Bearer: []
  /integrator/scopes:
    get:
      tags:
      - integrator
      summary: Retrieve a list of possible scopes for your API key
      description: Retrieve a list of possible scopes for your API key. Note that
        individual bearer tokens may have fewer scopes applied.
      operationId: getIntegratorScopes
      responses:
        200:
          description: Scopes retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
      security:
      - Api-Key: []
        Bearer: []
  /integrator/tokens:
    get:
      tags:
      - integrator
      summary: Retrieve a list of bearer tokens, with accounts, linked to this integrator
      description: Retrieve a list of bearer tokens, with accounts, linked to this
        integrator
      operationId: getIntegratorTokens
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pagesize'
      - name: accountId
        in: query
        description: Filter tokens belonging to this account ID
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: Tokens retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Token'
                  totalItems:
                    type: integer
                    format: int64
                  totalPages:
                    type: integer
                    format: int64
                  urls:
                    $ref: '#/components/schemas/Urls'
      security:
      - Api-Key: []
        Bearer: []
  /integrator/validateUser:
    post:
      tags:
      - integrator
      summary: Validate a user's credentials
      description: Validate a user's credentials
      operationId: validateIntegratorUser
      requestBody:
        description: Credential object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Credential'
        required: true
      responses:
        200:
          description: API Call completed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  userId:
                    type: integer
                    format: int64
                  accountId:
                    type: integer
                    format: int64
      security:
      - Api-Key: []
        Bearer: []
      x-codegen-request-body-name: body
  /integrator/merge-fields:
    get:
      tags:
      - integrator
      summary: Retrieve available merge fields for an account
      description: |-
        Integrator-authenticated version of the merge fields endpoint.
        Returns available merge fields for a given template type and delivery method for the specified account.
        The account must be enabled for the integrator.
        When `context` is omitted, returns a tiered response grouping fields by their availability requirements.
        When `context` is provided, returns a flat response containing only the fields usable in that context.
      operationId: getIntegratorMergeFields
      parameters:
      - name: account_id
        in: query
        description: ID of the account to fetch merge fields for. Must be enabled for this integrator.
        required: true
        schema:
          type: integer
          format: int64
      - name: template_type
        in: query
        description: Template type ID (e.g. market_report, buyer_match, property_alert).
        required: true
        schema:
          type: string
      - name: delivery_method
        in: query
        description: Delivery method to filter fields by. Defaults to email.
        schema:
          type: string
          enum:
          - email
          - sms
          - cloud_letter
          default: email
      - name: context
        in: query
        description: |-
          Context ID (e.g. contact_only, contact_property_sale). When provided the response
          is a flat list of fields usable in that context. When omitted the response is tiered
          showing all availability levels.
        schema:
          type: string
      - name: include_custom
        in: query
        description: Include account-specific custom contact and property merge fields.
        schema:
          type: boolean
          default: false
      - name: search
        in: query
        description: Filter fields by matching against the field name, description, or token.
        schema:
          type: string
      responses:
        200:
          description: Merge fields retrieved
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/MergeFieldsTieredResponse'
                - $ref: '#/components/schemas/MergeFieldsFlatResponse'
        400:
          description: account_id is required, or an invalid parameter value was supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError'
        404:
          description: Account not found or not enabled for this integrator
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError'
      security:
      - Api-Key: []
        Bearer: []
  /properties/{propertyid}/{salelease}/{lifeid}/externalStats:
    put:
      tags:
      - integrator
      summary: Integrator property statistics
      description: Update the property stats
      operationId: updateExternalPropertyStats
      parameters:
      - name: propertyid
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: salelease
        in: path
        description: Sale or lease
        required: true
        schema:
          type: string
      - name: lifeid
        in: path
        description: ID of the property life
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: List of property stats
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateIntegratorPropertyStats'
        required: true
      responses:
        200:
          description: Property stats updated
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UpdateIntegratorPropertyStats'
        400:
          description: Invalid data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError'
      security:
      - Api-Key: []
        Bearer: []
      x-codegen-request-body-name: body
    post:
      tags:
      - integrator
      summary: Integrator property statistics
      description: Add or update a property stat
      operationId: updateExternalPropertyStat
      parameters:
      - name: propertyid
        in: path
        description: ID of the property
        required: true
        schema:
          type: integer
          format: int64
      - name: salelease
        in: path
        description: Sale or lease
        required: true
        schema:
          type: string
      - name: lifeid
        in: path
        description: ID of the property life
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: Property stat to add or update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntegratorPropertyStat'
        required: true
      responses:
        200:
          description: Property stats updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegratorPropertyStat'
        400:
          description: Invalid data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError'
      security:
      - Api-Key: []
        Bearer: []
      x-codegen-request-body-name: body
  /scopes:
    get:
      tags:
      - integrator
      summary: Retrieve a list of granted scopes for this bearer token
      description: Retrieve a list of granted scopes for this bearer token
      operationId: getTokenScopes
      responses:
        200:
          description: Scopes retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
      security:
      - Api-Key: []
        Bearer: []
  /responseCodes:
    get:
      tags:
      - types
      summary: Retrieve a list of response codes used in this API
      description: Retrieve a list of response codes used in this API
      operationId: getResponseCodes
      responses:
        200:
          description: Response codes retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResponseCode'
      security:
      - Api-Key: []
  /types/propertyClass:
    get:
      tags:
      - types
      summary: Retrieve a list of property classes
      description: Retrieve a list of property classes
      operationId: getPropertyClasses
      parameters:
      - $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 classes retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PropertyClass'
                  totalItems:
                    type: integer
                    format: int64
                  totalPages:
                    type: integer
                    format: int64
                  urls:
                    $ref: '#/components/schemas/Urls'
      security:
      - Api-Key: []
        Bearer: []
  /types/propertyType:
    get:
      tags:
      - types
      summary: Retrieve a list of property types
      description: Retrieve a list of property types applicable to this account
      operationId: getPropertyTypes
      parameters:
      - $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 types retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PropertyType'
                  totalItems:
                    type: integer
                    format: int64
                  totalPages:
                    type: integer
                    format: int64
                  urls:
                    $ref: '#/components/schemas/Urls'
      security:
      - Api-Key: []
        Bearer: []

  /types/customUnsubscribe:
    get:
      tags:
      - types
      summary: Retrieve a list of custom unsubscribe types
      description: Retrieve a list of custom unsubscribe types for this account
      operationId: getCustomUnsubscribeTypes
      parameters:
      - $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: Custom unsubscribe types retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnsubscribeType'
                  totalItems:
                    type: integer
                    format: int64
                  totalPages:
                    type: integer
                    format: int64
                  urls:
                    $ref: '#/components/schemas/Urls'
      security:
      - Api-Key: []
        Bearer: []

  /types/contactInterest:
    get:
      tags:
      - types
      summary: Retrieve a list of contact interest types
      description: Retrieve a list of contact interest types
      operationId: getContactInterestTypes
      parameters:
      - $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: Contact interest types retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContactInterest'
                  totalItems:
                    type: integer
                    format: int64
                  totalPages:
                    type: integer
                    format: int64
                  urls:
                    $ref: '#/components/schemas/Urls'
      security:
      - Api-Key: []
        Bearer: []
  /types/entityTypes:
    get:
      tags:
      - types
      summary: Retrieve a list of contact entity types
      description: Retrieve a list of contact entity types
      operationId: getContactEntityTypes
      parameters:
      - $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: Types retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/EntityType'
                  totalItems:
                    type: integer
                    format: int64
                  totalPages:
                    type: integer
                    format: int64
                  urls:
                    $ref: '#/components/schemas/Urls'
      security:
      - Api-Key: []
        Bearer: []
  /types/externalLinks:
    get:
      tags:
      - types
      summary: Retrieve a list of property external link types
      description: Retrieve a list of property external link types
      operationId: getExternalLinkTypes
      parameters:
      - $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: Types retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ExternalLinkType'
                  totalItems:
                    type: integer
                    format: int64
                  totalPages:
                    type: integer
                    format: int64
                  urls:
                    $ref: '#/components/schemas/Urls'
      security:
      - Api-Key: []
        Bearer: []
  /types/contactnotes:
    get:
      tags:
      - types
      summary: Retrieve a list of contact note types for this account
      description: Retrieve a list of contact note types for this account
      operationId: getContactNoteTypes
      parameters:
      - $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: Note types retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContactNoteType'
                  totalItems:
                    type: integer
                    format: int64
                  totalPages:
                    type: integer
                    format: int64
                  urls:
                    $ref: '#/components/schemas/Urls'
      security:
      - Api-Key: []
        Bearer: []
  /types/contactnotes/{id}:
    get:
      tags:
      - types
      summary: Retrieve a single contact note type
      description: Retrieve a single contact note type
      operationId: getContactNoteType
      parameters:
      - name: id
        in: path
        description: ID of the note type
        required: true
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: Note type retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactNoteType'
      security:
      - Api-Key: []
        Bearer: []
  /types/propertynotes:
    get:
      tags:
      - types
      summary: Retrieve a list of property note types for this account
      description: Retrieve a list of property note types for this account
      operationId: getPropertyNoteTypes
      parameters:
      - $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: Note types retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PropertyNoteType'
                  totalItems:
                    type: integer
                    format: int64
                  totalPages:
                    type: integer
                    format: int64
                  urls:
                    $ref: '#/components/schemas/Urls'
      security:
      - Api-Key: []
        Bearer: []
  /types/propertynotes/{id}:
    get:
      tags:
      - types
      summary: Retrieve a single property note type
      description: Retrieve a single property note type
      operationId: getPropertyNoteType
      parameters:
      - name: id
        in: path
        description: ID of the note type
        required: true
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: Note type retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyNoteType'
      security:
      - Api-Key: []
        Bearer: []
  /buildings:
    get:
      tags:
      - buildings
      summary: Retrieve a list of buildings
      description: Retrieve a list of buildings
      operationId: getBuildings
      parameters:
      - $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: Buildings retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Building'
                  totalItems:
                    type: integer
                    format: int64
                  totalPages:
                    type: integer
                    format: int64
                  urls:
                    $ref: '#/components/schemas/Urls'
      security:
      - Api-Key: []
        Bearer: []
    post:
      tags:
      - buildings
      summary: Create a building record
      description: Create a building record
      operationId: addBuilding
      requestBody:
        description: Building object
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/AddUpdateBuilding'
        required: true
      responses:
        200:
          description: Building already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Building'
        201:
          description: Building created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Building'
        400:
          description: Invalid data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessOrError'
      security:
      - Api-Key: []
        Bearer: []
      x-codegen-request-body-name: body
  /buildings/{id}:
    get:
      tags:
      - buildings
      summary: Retrieve a single building
      description: Retrieve a single building
      operationId: getBuilding
      parameters:
      - name: id
        in: path
        description: ID of the building
        required: true
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: Building retrieved
          

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