VaultRE Integrator API

A distinct set of endpoints that operate at the integrator level rather than at an individual agency-account level, letting an approved integrator enumerate the accounts that have granted it an access token, list users on those accounts, validate a user, read granted scopes, list tokens, retrieve account-scoped merge fields, and read its own API usage. These endpoints replace the customer-supplied Bearer token with a short-lived HS512 JWT the integrator signs itself, carrying its API key and a current epoch timestamp and valid for 300 seconds, alongside the same X-Api-Key header.

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