Log in to Bueno

API documentation (2.0.0)

Download OpenAPI specification:Download

Introduction

The Bueno API is a collection of REST endpoints with JSON responses, for interacting with the site data model and associated histories.

Getting started

The building model

The data model is a hierarchical data structure:

Organisation → Site → Group → Equipment → Point

To fetch Site, Group, Equipment or Point data you can traverse the layers of the data model sequentially.

The data model can also be traversed in the opposite direction using the refs field which is available on each of the Site, Equipment and Point entities, providing a reference to all higher level entities.

For example a Point entity would have the following information available:

"refs": {"organisation": UUID,"site": UUID, "equip": UUID}

Histories data

Histories can be retrieved for a single Point as raw or aggregated (rolled up) data ranging from 5 minute to yearly intervals. An individual History entity is an object containing a timestamp, in the case of raw data a val, or in the case of a aggregation, formulas e.g. avg, max, min.

Aggregated data timestamps are always aligned to the start of the period, for example, for QUARTERLY, the dates would be Jan 1st, Apr 1st etc. regardless of whether the requested time period covers all or only some of the aggregate range.

The data is aggregated to the start of the time period, for example, for hourly data, a timestamp of 10:00 includes data from 10:00 inclusive to 11:00 exclusive.

Timestamps are returned in ISO 8601 format in Coordinated Universal Time (UTC) for raw and sub daily aggregated histories and as a local date for larger aggregations.

Access control

Access in the API is controlled by a User's Role, which defines the permissions available to a User e.g. View Insights, and Groups, which define which Organisations and Sites the User has access to. Not all endpoints documented here are available to every Role.

If you are a Bueno user, your access can be configured in the app. Alternatively, reach out to API support if you need help in configuring your access.

Authentication

This is required to retrieve an access token to authenticate your User with the API. Use the same credentials you use to login to the Bueno app to authenticate with the API.

All requests must be authorised using your Bearer access token.

  • HTTP authorisation scheme: bearer
  • Bearer format: JWT

Retrieve access token

Allows a user to login with their email and password. This endpoint will issue an access token on success.

This token will expire after the time specified in the response and a new token will need to be requested.

Request Body schema: application/json
email
string <email>
password
string

Responses

Response Schema: application/json
token
string <JWT>

JWT string that can be used as a bearer token

expires
integer <int64>

Issued JWT token time to expire in seconds

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "password": "S0m3@S3cr3TP4$$"
}

Response samples

Content type
application/json
{
  • "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
  • "expires": 1209599
}

Organisations

An Organisation entity represents a company or customer which has 0 or more Sites.

Possible operations for an Organisation are to retrieve a list of Organisations or an individual Organisation by ID. Sites and Integrations belonging to an Organisation can also be retrieved.

Retrieve Organisations

Retrieves a list of Organisation entities.

Authorizations:
Bearer authentication

Responses

Response Schema: application/json
Array
id
string <uuid>

Unique identifier of the Organisation

key
string

Human readable key to identify the Organisation

name
string

Full name of the Organisation

timezone
string

Timezone of the Organisation

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve Organisation by ID

Retrieves a single Organisation entity by its ID.

Authorizations:
Bearer authentication
path Parameters
organisationId
required
string <uuid>
Example: 9f1748db-ea2b-4e9a-b035-e5757d7e97c7

Unique identifier of an Organisation

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Organisation

key
string

Human readable key to identify the Organisation

name
string

Full name of the Organisation

timezone
string

Timezone of the Organisation

Response samples

Content type
application/json
{
  • "id": "9f1748db-ea2b-4e9a-b035-e5757d7e97c7",
  • "key": "ACME",
  • "name": "Acme Corporation",
  • "timezone": "Australia/Melbourne"
}

Sites

A Site entity is the equivalent of a building in the physical world. A Site always belongs to an Organisation.

Each Site entity contains:

  • Information related to the building location
  • tags and props which are used to add extra context to the Site
  • refs which specify which Organisation it belongs to

Possible operations for a Site include create, update and delete as well as retrieving a Site by its ID or a list of Sites belonging to an Organisation.

Create Site

Creates a new Site entity. The Organisation ID must be included in the Site's refs.

Authorizations:
Bearer authentication
Request Body schema: application/json
name
required
string

Name of the Site

area
number
Default: null

Area of the Site in square meters

latitude
required
number

Latitude co-ordinates of the Site

longitude
required
number

Longitude co-ordinates of the Site

address
required
string

Address of the Site

city
required
string

City in which the Site is located

state
required
string

State in which the Site is located

country
required
string

Two letter country in which the Site is located

postcode
required
string

Postcode of the Site

timezone
required
string

Timezone of the Site

props
object
Default: null

Additional key-value typed properties associated with the Site

tags
Array of strings
Default: null

Strings applied to the Site to add context and used for analytics

refs
required
object
Default: {}

Upstream references for the Site

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Site

name
string

Name of the Site

externalId
string
Default: null

Alternative unique identifier

description
string

Description of the Site

area
number
Default: null

Area of the Site in square meters

latitude
number
Default: null

Latitude co-ordinates of the Site

longitude
number
Default: null

Longitude co-ordinates of the Site

address
string
Default: null

Address of the Site

city
string

City in which the Site is located

state
string
Default: null

State in which the Site is located

country
string

Country in which the Site is located

postcode
string
Default: null

Postcode of the Site

timezone
string

Timezone of the Site

props
object
Default: {}

Additional key-value typed properties associated with the Site

refs
object
Default: {}

Upstream references for the Site

tags
Array of strings

Strings applied to the Site to add context and used for analytics

deleted
boolean

Boolean flag indicating if the Site is deleted

Request samples

Content type
application/json
{
  • "name": "Acme Building 1",
  • "area": 42500,
  • "latitude": -37.812765,
  • "longitude": 144.973535,
  • "address": "Sugartopped Loaf, Melbourne VIC 3000",
  • "city": "Melbourne",
  • "state": "VIC",
  • "country": "AU",
  • "postcode": "3000",
  • "timezone": "Australia/Melbourne",
  • "props": {
    },
  • "tags": [
    ],
  • "refs": {
    }
}

Response samples

Content type
application/json
{
  • "id": "8a7869df-6cad-4642-a015-9fbb36d3b337",
  • "name": "Acme Building 1",
  • "externalId": "2658ee88-0788524e",
  • "description": "Acme headquarters",
  • "area": 42500,
  • "latitude": -37.812765,
  • "longitude": 144.973535,
  • "address": "Sugartopped Loaf, Melbourne VIC 3000",
  • "city": "Melbourne",
  • "state": "VIC",
  • "country": "AU",
  • "postcode": "3000",
  • "timezone": "Australia/Melbourne",
  • "props": {
    },
  • "refs": {
    },
  • "tags": [
    ],
  • "deleted": false
}

Update Site

Updates a list of Site entities.

Authorizations:
Bearer authentication
Request Body schema: application/json
Array
id
required
string <uuid>

Unique identifier of the Site

name
required
string

Name of the Site

description
required
string

Description of the Site

area
number
Default: null

Area of the Site in square meters

latitude
number
Default: null

Latitude co-ordinates of the Site

longitude
number
Default: null

Longitude co-ordinates of the Site

address
string
Default: null

Address of the Site

city
required
string

City in which the Site is located

state
string
Default: null

State in which the Site is located

country
required
string

Country in which the Site is located

postcode
string
Default: null

Postcode of the Site

timezone
required
string

Timezone of the Site

props
object
Default: {}

Additional key-value typed properties associated with the Site

refs
required
object

Upstream references for the Site

tags
Array of strings
Default: []

Strings applied to the Site to add context and used for analytics

deleted
boolean
Default: false

Boolean flag indicating if the Site is deleted

Responses

Response Schema: application/json
Array
id
string <uuid>

Unique identifier of the Site

name
string

Name of the Site

externalId
string
Default: null

Alternative unique identifier

description
string

Description of the Site

area
number
Default: null

Area of the Site in square meters

latitude
number
Default: null

Latitude co-ordinates of the Site

longitude
number
Default: null

Longitude co-ordinates of the Site

address
string
Default: null

Address of the Site

city
string

City in which the Site is located

state
string
Default: null

State in which the Site is located

country
string

Country in which the Site is located

postcode
string
Default: null

Postcode of the Site

timezone
string

Timezone of the Site

props
object
Default: {}

Additional key-value typed properties associated with the Site

refs
object
Default: {}

Upstream references for the Site

tags
Array of strings

Strings applied to the Site to add context and used for analytics

deleted
boolean

Boolean flag indicating if the Site is deleted

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Delete Site

Deletes a single Site entity by its ID.

Authorizations:
Bearer authentication
path Parameters
siteId
required
string <uuid>
Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

Unique identifier of the Site

Responses

Retrieve Site by ID

Retrieves a single Site entity by its ID.

Authorizations:
Bearer authentication
path Parameters
siteId
required
string <uuid>
Example: 8a7869df-6cad-4642-a015-9fbb36d3b337

Unique identifier of the Site

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Site

name
string

Name of the Site

externalId
string
Default: null

Alternative unique identifier

description
string

Description of the Site

area
number
Default: null

Area of the Site in square meters

latitude
number
Default: null

Latitude co-ordinates of the Site

longitude
number
Default: null

Longitude co-ordinates of the Site

address
string
Default: null

Address of the Site

city
string

City in which the Site is located

state
string
Default: null

State in which the Site is located

country
string

Country in which the Site is located

postcode
string
Default: null

Postcode of the Site

timezone
string

Timezone of the Site

props
object
Default: {}

Additional key-value typed properties associated with the Site

refs
object
Default: {}

Upstream references for the Site

tags
Array of strings

Strings applied to the Site to add context and used for analytics

deleted
boolean

Boolean flag indicating if the Site is deleted

Response samples

Content type
application/json
{
  • "id": "8a7869df-6cad-4642-a015-9fbb36d3b337",
  • "name": "Acme Building 1",
  • "externalId": "2658ee88-0788524e",
  • "description": "Acme headquarters",
  • "area": 42500,
  • "latitude": -37.812765,
  • "longitude": 144.973535,
  • "address": "Sugartopped Loaf, Melbourne VIC 3000",
  • "city": "Melbourne",
  • "state": "VIC",
  • "country": "AU",
  • "postcode": "3000",
  • "timezone": "Australia/Melbourne",
  • "props": {
    },
  • "refs": {
    },
  • "tags": [
    ],
  • "deleted": false
}

Retrieve Sites by Organisation ID

Retrieves a list of Site entities belonging to a specific Organisation.

Authorizations:
Bearer authentication
path Parameters
organisationId
required
string <uuid>
Example: 9f1748db-ea2b-4e9a-b035-e5757d7e97c7

Unique identifier of an Organisation

query Parameters
includeDeleted
boolean
Default: false
Example: includeDeleted=false

Include deleted Sites in the response

Responses

Response Schema: application/json
Array
id
string <uuid>

Unique identifier of the Site

name
string

Name of the Site

externalId
string
Default: null

Alternative unique identifier

description
string

Description of the Site

area
number
Default: null

Area of the Site in square meters

latitude
number
Default: null

Latitude co-ordinates of the Site

longitude
number
Default: null

Longitude co-ordinates of the Site

address
string
Default: null

Address of the Site

city
string

City in which the Site is located

state
string
Default: null

State in which the Site is located

country
string

Country in which the Site is located

postcode
string
Default: null

Postcode of the Site

timezone
string

Timezone of the Site

props
object
Default: {}

Additional key-value typed properties associated with the Site

refs
object
Default: {}

Upstream references for the Site

tags
Array of strings

Strings applied to the Site to add context and used for analytics

deleted
boolean

Boolean flag indicating if the Site is deleted

Response samples

Content type
application/json
[
  • {
    }
]

Groups

A Group entity belongs to a Site and is used to associate Equipment together within that Site.

A Group contains:

  • name used to uniquely label the group
  • siteId to identify the ID of the Site it belongs to

Possible operations for a Group include create, update and delete as well as retrieving a Group by its ID or a list of Groups by Site ID.

Create Group

Creates a new Group entity.

Authorizations:
Bearer authentication
Request Body schema: application/json
name
required
string

Name of the Group

siteId
required
string <uuid>

Unique identifier of the Site the Group belongs to

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Group

name
string

Name of the Group

siteId
string <uuid>

Unique identifier of the Site the Group belongs to

Request samples

Content type
application/json
{
  • "name": "CHW PLANT",
  • "siteId": "38d77506-9c7a-447e-9153-b9ce23b7ceb6"
}

Response samples

Content type
application/json
{
  • "id": "38d77506-9c7a-447e-9153-b9ce23b7ceb6",
  • "name": "CHW PLANT",
  • "siteId": "8a7869df-6cad-4642-a015-9fbb36d3b337"
}

Update Group

Updates a list of Group entities.

Authorizations:
Bearer authentication
Request Body schema: application/json
Array
id
required
string <uuid>

Unique identifier of the Group

name
required
string

Name of the Group

siteId
required
string <uuid>

Unique identifier of the Site the Group belongs to

Responses

Response Schema: application/json
Array
id
string <uuid>

Unique identifier of the Group

name
string

Name of the Group

siteId
string <uuid>

Unique identifier of the Site the Group belongs to

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Delete Group

Deletes a single Group entity by its ID.

Authorizations:
Bearer authentication
path Parameters
equipGroupId
required
string <uuid>
Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

Unique identifier of the Group

Responses

Retrieve Group by ID

Retrieves a Group entity by its ID.

Authorizations:
Bearer authentication
path Parameters
equipGroupId
required
string <uuid>
Example: 38d77506-9c7a-447e-9153-b9ce23b7ceb6

Unique identifier of a Group

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Group

name
string

Name of the Group

siteId
string <uuid>

Unique identifier of the Site the Group belongs to

Response samples

Content type
application/json
{
  • "id": "38d77506-9c7a-447e-9153-b9ce23b7ceb6",
  • "name": "CHW PLANT",
  • "siteId": "8a7869df-6cad-4642-a015-9fbb36d3b337"
}

Retrieve Groups by Site ID

Retrieves a list of Group entities belonging to a specific Site.

Authorizations:
Bearer authentication
path Parameters
siteId
required
string <uuid>
Example: 8a7869df-6cad-4642-a015-9fbb36d3b337

Unique identifier of the Site

Responses

Response Schema: application/json
Array
id
string <uuid>

Unique identifier of the Group

name
string

Name of the Group

siteId
string <uuid>

Unique identifier of the Site the Group belongs to

Response samples

Content type
application/json
[
  • {
    }
]

Equipment

An Equipment entity can be roughly translated to either a physical object in a building such as a fan, or a virtual object such as a level/floor of a building. An Equipment belongs to a Group.

The Equipment entity contains:

  • tags which are strings used to describe the type of equipment
  • types which are used to group particular type of equipment
  • props which provide key value meta information
  • refs to specify which Site and Organisation it belongs to
  • deploymentId to specify which Deployment it belongs to.

Possible operations for an Equipment include create, update and delete, as well as Import and Export. It is also possible to retrieve an Equipment by its ID, a list of Equipment belonging to a Group or a list of Equipment belonging to a Site.

Create Equipment

Creates a new Equipment entity. The Group ID must be included in the Equipment's refs.

Authorizations:
Bearer authentication
Request Body schema: application/json
name
required
string

Name of the Equipment

tags
Array of strings
Default: []

Strings applied to the Equipment to add context and used for analytics

refs
required
object
Default: {}

Upstream references for the Equipment

props
object
Default: {}

Additional key-value typed properties associated with the Equipment

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Equipment

name
string

Name of the Equipment

externalId
string
Default: null

Alternative unique identifier

tags
Array of strings

Strings applied to the Equipment to add context and used for analytics

refs
object
Default: {}

Upstream references for the Equipment

Array of objects (EquipmentType)

Equipment types that the Equipment belongs to e.g. ahu, chiller

props
object
Default: {}

Additional key-value typed properties associated with the Equipment

deleted
boolean

Boolean flag indicating if the Equipment is deleted

Request samples

Content type
application/json
{
  • "name": "Gas Meter",
  • "tags": [
    ],
  • "refs": {
    },
  • "props": {
    }
}

Response samples

Content type
application/json
{
  • "id": "0e366a9c-3b7c-4e4f-8da1-ad0fdfd40c3d",
  • "name": "Gas Meter",
  • "externalId": "3758ef98-0788524e",
  • "tags": [
    ],
  • "refs": {
    },
  • "types": [
    ],
  • "props": {
    },
  • "deleted": false
}

Update Equipment

Updates a list of Equipment entities.

Authorizations:
Bearer authentication
Request Body schema: application/json
Array
id
required
string <uuid>

Unique identifier of the Equipment

name
required
string

Name of the Equipment

tags
Array of strings
Default: []

Strings applied to the Equipment to add context and used for analytics

refs
required
object

Upstream references for the Equipment

Array of objects (EquipmentType)
Default: []

Equipment types that the Equipment belongs to e.g. ahu, chiller

props
object
Default: {}

Additional key-value typed properties associated with the Equipment

deleted
boolean
Default: false

Boolean flag indicating if the Equipment is deleted

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Equipment

name
string

Name of the Equipment

externalId
string
Default: null

Alternative unique identifier

tags
Array of strings

Strings applied to the Equipment to add context and used for analytics

refs
object
Default: {}

Upstream references for the Equipment

Array of objects (EquipmentType)

Equipment types that the Equipment belongs to e.g. ahu, chiller

props
object
Default: {}

Additional key-value typed properties associated with the Equipment

deleted
boolean

Boolean flag indicating if the Equipment is deleted

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": "0e366a9c-3b7c-4e4f-8da1-ad0fdfd40c3d",
  • "name": "Gas Meter",
  • "externalId": "3758ef98-0788524e",
  • "tags": [
    ],
  • "refs": {
    },
  • "types": [
    ],
  • "props": {
    },
  • "deleted": false
}

Delete Equipment

Deletes a single Equipment entity by its ID.

Authorizations:
Bearer authentication
path Parameters
equipId
required
string <uuid>
Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

Unique identifier of the Equipment

Responses

Retrieve Equipment by ID

Retrieves a single Equipment entity by its ID.

Authorizations:
Bearer authentication
path Parameters
equipId
required
string <uuid>
Example: 0e366a9c-3b7c-4e4f-8da1-ad0fdfd40c3d

Unique identifier of the Equipment

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Equipment

name
string

Name of the Equipment

externalId
string
Default: null

Alternative unique identifier

tags
Array of strings

Strings applied to the Equipment to add context and used for analytics

refs
object
Default: {}

Upstream references for the Equipment

Array of objects (EquipmentType)

Equipment types that the Equipment belongs to e.g. ahu, chiller

props
object
Default: {}

Additional key-value typed properties associated with the Equipment

deleted
boolean

Boolean flag indicating if the Equipment is deleted

Response samples

Content type
application/json
{
  • "id": "0e366a9c-3b7c-4e4f-8da1-ad0fdfd40c3d",
  • "name": "Gas Meter",
  • "externalId": "3758ef98-0788524e",
  • "tags": [
    ],
  • "refs": {
    },
  • "types": [
    ],
  • "props": {
    },
  • "deleted": false
}

Retrieve Equipment by Group ID

Retrieves a list of Equipment entities belonging to a Group.

Authorizations:
Bearer authentication
path Parameters
equipGroupId
required
string <uuid>
Example: 38d77506-9c7a-447e-9153-b9ce23b7ceb6

Unique identifier of the Group

query Parameters
includeDeleted
boolean
Default: false
Example: includeDeleted=false

Include deleted Equipment in the response

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Equipment

name
string

Name of the Equipment

externalId
string
Default: null

Alternative unique identifier

tags
Array of strings

Strings applied to the Equipment to add context and used for analytics

refs
object
Default: {}

Upstream references for the Equipment

Array of objects (EquipmentType)

Equipment types that the Equipment belongs to e.g. ahu, chiller

props
object
Default: {}

Additional key-value typed properties associated with the Equipment

deleted
boolean

Boolean flag indicating if the Equipment is deleted

Response samples

Content type
application/json
{
  • "id": "0e366a9c-3b7c-4e4f-8da1-ad0fdfd40c3d",
  • "name": "Gas Meter",
  • "externalId": "3758ef98-0788524e",
  • "tags": [
    ],
  • "refs": {
    },
  • "types": [
    ],
  • "props": {
    },
  • "deleted": false
}

Retrieve Equipment by Site ID

Retrieves a list of Equipment entities belonging to a specific Site.

Authorizations:
Bearer authentication
path Parameters
siteId
required
string <uuid>
Example: 8a7869df-6cad-4642-a015-9fbb36d3b337

Unique identifier of the Site

query Parameters
includeDeleted
boolean
Default: false
Example: includeDeleted=false

Include deleted Equipment in the response

equipGroupId
string <uuid>
Default: null
Example: equipGroupId=f11b46d2-f569-41a3-b0f2-5f95edc0bf94

Unique identifier of a Group

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Equipment

name
string

Name of the Equipment

externalId
string
Default: null

Alternative unique identifier

tags
Array of strings

Strings applied to the Equipment to add context and used for analytics

refs
object
Default: {}

Upstream references for the Equipment

Array of objects (EquipmentType)

Equipment types that the Equipment belongs to e.g. ahu, chiller

props
object
Default: {}

Additional key-value typed properties associated with the Equipment

deleted
boolean

Boolean flag indicating if the Equipment is deleted

Response samples

Content type
application/json
{
  • "id": "0e366a9c-3b7c-4e4f-8da1-ad0fdfd40c3d",
  • "name": "Gas Meter",
  • "externalId": "3758ef98-0788524e",
  • "tags": [
    ],
  • "refs": {
    },
  • "types": [
    ],
  • "props": {
    },
  • "deleted": false
}

Import Equipment

The import feature provides a way to create and update Equipment in bulk within an Organisation (across multiple Sites and Integrations). This includes:

  • Creating Equipment and Groups
  • Updating the properties of existing Equipment, including moving Equipment to a new Group

For detailed documentation on this feature, please contact API support.

Authorizations:
Bearer authentication
Request Body schema: text/csv
Schema not provided

Responses

Response Schema: application/json
sites
Array of arrays

Equipment import stats broken down by site

validation
json

Validation data from the import including any errors

Response samples

Content type
application/json
{
  • "sites": [
    ],
  • "validation": {
    }
}

Export Equipment

The export feature provides a way to export a CSV of Equipment for one or more Sites. The CSV is formatted in a way that it can be directly used in the Equipment import, making it easy to bulk update Equipment.

Authorizations:
Bearer authentication
query Parameters
siteIds
required
Array of strings <uuid>
Example: siteIds=8a7869df-6cad-4642-a015-9fbb36d3b337

List of unique identifiers of the Sites to export Points for

Responses

Response Schema: text/csv
string

Response samples

Content type
application/json
{
  • "error": "Bad Request",
  • "message": "Failed to convert value of type 'java.lang.String' to required type 'java.util.UUID'; nested exception is java.lang.IllegalArgumentException: Invalid UUID string: invalid"
}

Points

A Point entity refers to a data point in a building such as a sensor or a set point. A Point always belongs to an Equipment.

The Point entity contains:

  • type to describe if the point is a Number, Boolean or String
  • unit (optional) which contains information about the Unit of a Point e.g. "kL"
  • tags which are strings used to describe the Point for example a ZT sensor might be described with "zone", "temp", "sensor"
  • props which provide key value meta information
  • refs to specify which Equipment, Site and Organisation it belongs to

Possible operations for a Point include create, update and delete, as well as Import and Export. It is also possible to retrieve a Point by its ID, a list of Points belonging to an Equip as well as a Point's raw and aggregated histories over a period of time.

Create Point

Creates a new Point entity. The Equipment ID must be included in the Point's refs.

Authorizations:
Bearer authentication
Request Body schema: application/json
name
required
string

Name of the Point

type
required
string
Enum: "boolean" "number" "bin" "coord" "date" "datetime" "time" "marker" "reference" "string" "uri"

Type of the Point

object (PointUnitProperty)
Default: null

Unit of the Point

tags
Array of strings
Default: []

Strings applied to the Point to add context and used for analytics

props
object
Default: {}

Additional key-value typed properties associated with the Point

refs
required
object
Default: {}

Upstream references for the Point

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Point

name
string

Name of the Point

type
string
Enum: "boolean" "number" "bin" "coord" "date" "datetime" "time" "marker" "reference" "string" "uri"

Type of the Point

externalId
string
Default: null

Alternative unique identifier

tags
Array of strings

Strings applied to the Point to add context and used for analytics

props
object
Default: {}

Additional key-value typed properties associated with the Point

object (PointUnitProperty)
Default: null

Unit of the Point

defaultHistoryRollup
string
Default: "avg"

Default formula used when aggregating Histories for the Point

deleted
boolean

Boolean flag indicating if the Point is deleted

refs
object
Default: {}

Upstream references for the Point

enumValues
object
Default: {}

The enumerated values of a Point's History, only present if the Point type is string

Request samples

Content type
application/json
{
  • "name": "SUCTION_PRES",
  • "type": "number",
  • "unit": {
    },
  • "tags": [
    ],
  • "props": {
    },
  • "refs": {
    }
}

Response samples

Content type
application/json
{
  • "id": "5c198552-51dd-4214-994f-dd089ba0e1dc",
  • "name": "SUCTION_PRES",
  • "type": "number",
  • "externalId": "227556dc-0788524e",
  • "tags": [
    ],
  • "props": {
    },
  • "unit": {
    },
  • "defaultHistoryRollup": "avg",
  • "deleted": false,
  • "refs": {
    },
  • "enumValues": {
    }
}

Update Point

Updates a list of Point entities.

Authorizations:
Bearer authentication
Request Body schema: application/json
Array
id
required
string <uuid>

Unique identifier of the Point

name
required
string

Name of the Point

type
required
string
Enum: "boolean" "number" "bin" "coord" "date" "datetime" "time" "marker" "reference" "string" "uri"

Type of the Point

tags
Array of strings
Default: []

Strings applied to the Point to add context and used for analytics

props
object
Default: {}

Additional key-value typed properties associated with the Point

object (PointUnitProperty)
Default: null

Unit of the Point

deleted
boolean
Default: false

Boolean flag indicating if the Point is deleted

refs
required
object

Upstream references for the Point

enumValues
object
Default: {}

The enumerated values of a Point's History, only present if the Point type is string

Responses

Response Schema: application/json
Array
id
string <uuid>

Unique identifier of the Point

name
string

Name of the Point

type
string
Enum: "boolean" "number" "bin" "coord" "date" "datetime" "time" "marker" "reference" "string" "uri"

Type of the Point

externalId
string
Default: null

Alternative unique identifier

tags
Array of strings

Strings applied to the Point to add context and used for analytics

props
object
Default: {}

Additional key-value typed properties associated with the Point

object (PointUnitProperty)
Default: null

Unit of the Point

defaultHistoryRollup
string
Default: "avg"

Default formula used when aggregating Histories for the Point

deleted
boolean

Boolean flag indicating if the Point is deleted

refs
object
Default: {}

Upstream references for the Point

enumValues
object
Default: {}

The enumerated values of a Point's History, only present if the Point type is string

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Delete Point

Deletes a single Point entity by its ID.

Authorizations:
Bearer authentication
path Parameters
pointId
required
string <uuid>
Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

Unique identifier of the Point

Responses

Retrieve Point by ID

Retrieves a single Point entity by its ID.

Authorizations:
Bearer authentication
path Parameters
pointId
required
string <uuid>
Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

Unique identifier of the Point

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Point

name
string

Name of the Point

type
string
Enum: "boolean" "number" "bin" "coord" "date" "datetime" "time" "marker" "reference" "string" "uri"

Type of the Point

externalId
string
Default: null

Alternative unique identifier

tags
Array of strings

Strings applied to the Point to add context and used for analytics

props
object
Default: {}

Additional key-value typed properties associated with the Point

object (PointUnitProperty)
Default: null

Unit of the Point

defaultHistoryRollup
string
Default: "avg"

Default formula used when aggregating Histories for the Point

deleted
boolean

Boolean flag indicating if the Point is deleted

refs
object
Default: {}

Upstream references for the Point

enumValues
object
Default: {}

The enumerated values of a Point's History, only present if the Point type is string

Response samples

Content type
application/json
{
  • "id": "5c198552-51dd-4214-994f-dd089ba0e1dc",
  • "name": "SUCTION_PRES",
  • "type": "number",
  • "externalId": "227556dc-0788524e",
  • "tags": [
    ],
  • "props": {
    },
  • "unit": {
    },
  • "defaultHistoryRollup": "avg",
  • "deleted": false,
  • "refs": {
    },
  • "enumValues": {
    }
}

Retrieve Points by Equipment ID

Retrieves a list of Point entities belonging to a specific Equipment.

Authorizations:
Bearer authentication
path Parameters
equipId
required
string <uuid>
Example: 0e366a9c-3b7c-4e4f-8da1-ad0fdfd40c3d

Unique identifier of the Equipment

query Parameters
includeDeleted
boolean
Default: false
Example: includeDeleted=false

Include deleted Points in the response

Responses

Response Schema: application/json
Array
id
string <uuid>

Unique identifier of the Point

name
string

Name of the Point

type
string
Enum: "boolean" "number" "bin" "coord" "date" "datetime" "time" "marker" "reference" "string" "uri"

Type of the Point

externalId
string
Default: null

Alternative unique identifier

tags
Array of strings

Strings applied to the Point to add context and used for analytics

props
object
Default: {}

Additional key-value typed properties associated with the Point

object (PointUnitProperty)
Default: null

Unit of the Point

defaultHistoryRollup
string
Default: "avg"

Default formula used when aggregating Histories for the Point

deleted
boolean

Boolean flag indicating if the Point is deleted

refs
object
Default: {}

Upstream references for the Point

enumValues
object
Default: {}

The enumerated values of a Point's History, only present if the Point type is string

Response samples

Content type
application/json
[
  • {
    }
]

Import Points

The import feature provides a way to create and update Points in bulk within an Organisation (across multiple Sites and Integrations). This includes:

  • Creating Points, Equipment and Groups
  • Creating Data Streams and Point Data Stream Mappings
  • Updating the properties of existing Points, including moving Points to a new Equipment

For detailed documentation on this feature, please contact API support.

Authorizations:
Bearer authentication
Request Body schema: text/csv
Schema not provided

Responses

Response Schema: application/json
sites
Array of arrays

Point import stats broken down by site

validation
json

Validation data from the import including any errors

Response samples

Content type
application/json
{
  • "sites": [
    ],
  • "validation": {
    }
}

Export Points

The export feature provides a way to export a CSV of Points for one or more Sites. The CSV is formatted in a way that it can be directly used in the Points import, making it easy to bulk update Points.

Authorizations:
Bearer authentication
query Parameters
siteIds
required
Array of strings <uuid>
Example: siteIds=8a7869df-6cad-4642-a015-9fbb36d3b337

List of unique identifiers of the Sites to export Points for

includeDataStreamMappings
boolean
Default: false
Example: includeDataStreamMappings=true

Boolean parameter to determine whether the Point Data Stream Mappings will be included in the CSV export

Responses

Response Schema: text/csv
string

Response samples

Content type
application/json
{
  • "error": "Bad Request",
  • "message": "Failed to convert value of type 'java.lang.String' to required type 'java.util.UUID'; nested exception is java.lang.IllegalArgumentException: Invalid UUID string: invalid"
}

Retrieve raw Histories by Point ID

Retrieves a list of raw Histories for a Point for a given time period.

Units: By default the histories are returned in the original (RAW) unit however can be converted to a standardised unit by passing in STANDARD to the convertTo field. The standard unit for example will convert all Histories with a Unit of type pressure to kPa.

LOCF: It may be desirable to include in the response, the value of the last observation (history) directly before the requested time range, carried forward to the start of that time range. (E.g if histories from 6am to 7am were requested, the history at 5:55am would be carried forward to 6am and included in the response.) This can be useful for change of value (COV) points where that last observation is assumed to be valid up until a new one is received. By default this last observation carried forward (LOCF) is not included but it can be added by passing in INCLUDE_LOCF to the lastObservation field. Please note that the last observation will only be carried forward to the start of the requested time range if an observation (history) does not already exist at the start of that time range.

Authorizations:
Bearer authentication
path Parameters
pointId
required
string <uuid>
Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

Unique identifier of the Point

query Parameters
from
required
string <date-time>
Example: from=2022-10-08T04:23:00.000Z

Start timestamp of the duration for which the Point Histories are requested

to
required
string <date-time>
Example: to=2022-10-12T04:23:00.000Z

End timestamp of the duration for which the Point Histories are requested

lastObservation
string
Default: "EXCLUDE"
Enum: "INCLUDE_LOCF" "EXCLUDE"
Example: lastObservation=INCLUDE_LOCF

Include the last observation carried forward (INCLUDE_LOCF) or only return the histories within the requested time range (EXCLUDE)

convertTo
string
Enum: "RAW" "STANDARD"
Example: convertTo=RAW

Convert Point Histories to either their original (RAW) or standardised (STANDARD) unit

Responses

Response Schema: application/json
Array
ts
string <date-time>

Timestamp of the History object

val
number

Value of the History object

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve sub-daily aggregated Histories by Point ID

Retrieves aggregated histories for a specific Point, time period and aggregation interval which must be less than daily (sub-daily).

Authorizations:
Bearer authentication
path Parameters
pointId
required
string <uuid>
Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

Unique identifier of the Point

query Parameters
from
required
string <date-time>
Example: from=2022-10-08T04:23:00.000Z

Start timestamp of the duration for which the Point Histories are requested

to
required
string <date-time>
Example: to=2022-10-12T04:23:00.000Z

End timestamp of the duration for which the Point Histories are requested

type
required
string
Enum: "FIVE_MINUTE" "QUARTER_HOURLY" "HALF_HOURLY" "HOURLY"
Example: type=FIVE_MINUTE

The interval to which the histories are aggregated to e.g. an interval of HOURLY will rollup all timestamps into a single timestamp per hour on the hour

Responses

Response Schema: application/json
Array
ts
string <date-time>

Start timestamp of the History aggregate

avg
number
Default: null

Average value in the period starting at the ts (inclusive) till the ts of the next History (exclusive)

sum
number
Default: null

Sum of the values in the period starting at the ts (inclusive) till the ts of the next History (exclusive)

min
number
Default: null

Minimum value in the period starting at the ts (inclusive) till the ts of the next History (exclusive)

max
number
Default: null

Maximum value in the period starting at the ts (inclusive) till the ts of the next History (exclusive)

count
integer <int16>
Default: null

Count of values in the period starting at the ts (inclusive) till the ts of the next History (exclusive)

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve aggregated Point histories by Point ID

Retrieves aggregated histories for a specific Point, time period and aggregation interval of daily or higher.

Authorizations:
Bearer authentication
path Parameters
pointId
required
string <uuid>
Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

Unique identifier of the Point

query Parameters
from
required
string <date>
Default: null
Example: from=2022-10-08

Start date of the duration for which Point histories are requested

to
required
string <date>
Default: null
Example: to=2022-10-12

End date of the duration for which Point histories are requested

type
required
string
Enum: "DAILY" "MONTHLY" "QUARTERLY" "YEARLY"
Example: type=MONTHLY

Interval

Responses

Response Schema: application/json
Array
ts
string <date>

Start date of the History aggregate

avg
number
Default: null

Average value in the period starting at 00:00 on the ts (inclusive) till 00:00 on the ts of the next History (exclusive)

sum
number
Default: null

Sum of values in the period starting at 00:00 on the ts (inclusive) till 00:00 on the ts of the next History (exclusive)

min
number
Default: null

Minimum value in the period starting at 00:00 on the ts (inclusive) till 00:00 on the ts of the next History (exclusive)

max
number
Default: null

Maximum value in the period starting at 00:00 on the ts (inclusive) till 00:00 on the ts of the next History (exclusive)

count
integer <int16>
Default: null

Count of values in the period starting at 00:00 on the ts (inclusive) till 00:00 on the ts of the next History (exclusive)

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve Legacy Point by ID Deprecated

Retrieves a single legacy Point entity by its ID. This endpoint has been replaced by /v3/points/{pointId} as it contains the legacy field etlId.

Authorizations:
Bearer authentication
path Parameters
pointId
required
string <uuid>
Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

Unique identifier of the Point

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Point

name
string

Name of the Point

type
string
Enum: "boolean" "number" "bin" "coord" "date" "datetime" "time" "marker" "reference" "string" "uri"

Type of the Point

externalId
string
Default: null

Alternative unique identifier

etlId
string
Default: null

ETL ID used to extract, transform and load historic data for the Point

tags
Array of strings

Strings applied to the Point to add context and used for analytics

props
object
Default: {}

Additional key-value typed properties associated with the Point

object (PointUnitProperty)
Default: null

Unit of the Point

defaultHistoryRollup
string
Default: "avg"

Default formula used when aggregating Histories for the Point

deleted
boolean

Boolean flag indicating if the Point is deleted

refs
object
Default: {}

Upstream references for the Point

enumValues
object
Default: {}

The enumerated values of a Point's History, only present if the Point type is string

Response samples

Content type
application/json
{
  • "id": "5c198552-51dd-4214-994f-dd089ba0e1dc",
  • "name": "SUCTION_PRES",
  • "type": "number",
  • "externalId": "227556dc-0788524e",
  • "etlId": "VICTarneit3029~R2MT$7cR2_MT_404A$2da2$7cSUCTION_PRES",
  • "tags": [
    ],
  • "props": {
    },
  • "unit": {
    },
  • "defaultHistoryRollup": "avg",
  • "deleted": false,
  • "refs": {
    },
  • "enumValues": {
    }
}

Retrieve Legacy Points by Equipment ID Deprecated

Retrieves a list of legacy Point entities belonging to a specific Equipment. This endpoint has been replaced by /v3/equips/{equipId}/points as it returns a list of legacy Points entities which contains the legacy field etlId.

Authorizations:
Bearer authentication
path Parameters
equipId
required
string <uuid>
Example: 0e366a9c-3b7c-4e4f-8da1-ad0fdfd40c3d

Unique identifier of the Equipment

query Parameters
includeDeleted
boolean
Default: false
Example: includeDeleted=false

Include deleted Points in the response

Responses

Response Schema: application/json
Array
id
string <uuid>

Unique identifier of the Point

name
string

Name of the Point

type
string
Enum: "boolean" "number" "bin" "coord" "date" "datetime" "time" "marker" "reference" "string" "uri"

Type of the Point

externalId
string
Default: null

Alternative unique identifier

etlId
string
Default: null

ETL ID used to extract, transform and load historic data for the Point

tags
Array of strings

Strings applied to the Point to add context and used for analytics

props
object
Default: {}

Additional key-value typed properties associated with the Point

object (PointUnitProperty)
Default: null

Unit of the Point

defaultHistoryRollup
string
Default: "avg"

Default formula used when aggregating Histories for the Point

deleted
boolean

Boolean flag indicating if the Point is deleted

refs
object
Default: {}

Upstream references for the Point

enumValues
object
Default: {}

The enumerated values of a Point's History, only present if the Point type is string

Response samples

Content type
application/json
[
  • {
    }
]

Integrations

An Integration represents a connection to a source of multiple Data Streams, typically from a single device or data connection. There can be one or more Integrations per building, such as:

  • A Niagara Integration for a BMS
  • An MQTT Integration from an IoT sensor network
  • An ETL Integration from a vertical transport system

Create Integration

Creates a new Integration entity.

Authorizations:
Bearer authentication
Request Body schema: application/json
name
required
string

Name of the Integration

organisationId
required
string <uuid>

Unique identifier of the Organisation the Integration belongs to

timezone
required
string

Timezone of the Integration

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Integration

name
string

Name of the Integration

organisationId
string <uuid>

Unique identifier of the Organisation the Integration belongs to

timezone
string

Timezone of the Integration

Request samples

Content type
application/json
{
  • "name": "1 Sesame St BMS ",
  • "organisationId": "9f1748db-ea2b-4e9a-b035-e5757d7e97c7",
  • "timezone": "Australia/Melbourne"
}

Response samples

Content type
application/json
{
  • "id": "5c198552-51dd-4214-994f-dd089ba0e1dc",
  • "name": "1 Sesame St BMS",
  • "organisationId": "9f1748db-ea2b-4e9a-b035-e5757d7e97c7",
  • "timezone": "Australia/Melbourne"
}

Update Integration

Updates a single Integration entity.

Authorizations:
Bearer authentication
Request Body schema: application/json
id
string <uuid>

Unique identifier of the Integration

name
string

Name of the Integration

organisationId
string <uuid>

Unique identifier of the Organisation the Integration belongs to

timezone
string

Timezone of the Integration

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Integration

name
string

Name of the Integration

organisationId
string <uuid>

Unique identifier of the Organisation the Integration belongs to

timezone
string

Timezone of the Integration

Request samples

Content type
application/json
{
  • "id": "5c198552-51dd-4214-994f-dd089ba0e1dc",
  • "name": "1 Sesame St BMS",
  • "organisationId": "9f1748db-ea2b-4e9a-b035-e5757d7e97c7",
  • "timezone": "Australia/Melbourne"
}

Response samples

Content type
application/json
{
  • "id": "5c198552-51dd-4214-994f-dd089ba0e1dc",
  • "name": "1 Sesame St BMS",
  • "organisationId": "9f1748db-ea2b-4e9a-b035-e5757d7e97c7",
  • "timezone": "Australia/Melbourne"
}

Delete Integration

Deletes a single Integration entity by its ID.

Authorizations:
Bearer authentication
path Parameters
integrationId
required
string <uuid>
Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

Unique identifier of the Integration

Responses

Retrieve Integration by ID

Retrieves a single Integration entity by its ID.

Authorizations:
Bearer authentication
path Parameters
integrationId
required
string <uuid>
Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

Unique identifier of the Integration

Responses

Response Schema: application/json
id
string <uuid>

Unique identifier of the Integration

name
string

Name of the Integration

organisationId
string <uuid>

Unique identifier of the Organisation the Integration belongs to

timezone
string

Timezone of the Integration

Response samples

Content type
application/json
{
  • "id": "5c198552-51dd-4214-994f-dd089ba0e1dc",
  • "name": "1 Sesame St BMS",
  • "organisationId": "9f1748db-ea2b-4e9a-b035-e5757d7e97c7",
  • "timezone": "Australia/Melbourne"
}

Retrieve Integrations by Organisation ID

Retrieves a list of Integration entities belonging an Organisation.

Authorizations:
Bearer authentication
path Parameters
organisationId
required
string <uuid>
Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

Unique identifier of the Organisation

Responses

Response Schema: application/json
Array
id
string <uuid>

Unique identifier of the Integration

name
string

Name of the Integration

organisationId
string <uuid>

Unique identifier of the Organisation the Integration belongs to

timezone
string

Timezone of the Integration

Response samples

Content type
application/json
[
  • {
    }
]

Data Streams

Data Streams represent a single source of data i.e. they have time series history attached to them. Each Data Stream is identified by a unique streamId (NOTE: this is a replacement of the legacy etlId). Data Streams belong to an Integration, based on the device or data connection, which helps organise and manage the data effectively, allowing for better troubleshooting of data connection issues. This is because issues usually occur on a device-by-device or connection-by-connection basis.

A Data Stream has the following properties:

  • type describes the type of history either NUMBER or STRING
  • status defines if data is being ingested for this Data Stream, either ENABLED or DISABLED
  • metadata a free json field to store any extra information for the data stream, for example the unit
  • Create Data Stream

    Creates a new Data Stream entity.

    Authorizations:
    Bearer authentication
    Request Body schema: application/json
    integrationId
    required
    string <uuid>

    Unique identifier of the Integration

    streamId
    required
    string

    Identifier of the Data Stream (unique within the Organisation)

    status
    required
    string
    Enum: "ENABLED" "DISABLED"

    Whether the Data Stream is enabled or disabled (no longer ingesting data)

    type
    required
    string
    Enum: "NUMBER" "STRING"

    The data type of the history

    metadata
    json

    Json field to store any useful information, for example the unit

    Responses

    Response Schema: application/json
    integrationId
    string <uuid>

    Unique identifier of the Integration

    streamId
    string

    Identifier of the Data Stream (unique within the Organisation)

    status
    string
    Enum: "ENABLED" "DISABLED"

    Whether the Data Stream is enabled or disabled (no longer ingesting data)

    type
    string
    Enum: "NUMBER" "STRING"

    The data type of the history

    metadata
    json

    Json field to store any useful information, for example the unit

    pointMappings
    Array of arrays
    Default: null

    List of Point Mappings associated to this Data Stream (optional)

    Request samples

    Content type
    application/json
    {
    • "integrationId": "5c198552-51dd-4214-994f-dd089ba0e1dc",
    • "streamId": "MyConnection/Device301/Chiller-1/SAT",
    • "status": "ENABLED",
    • "type": "NUMBER",
    • "metadata": {
      }
    }

    Response samples

    Content type
    application/json
    {
    • "integrationId": "5c198552-51dd-4214-994f-dd089ba0e1dc",
    • "streamId": "MyConnection/Device301/Chiller-1/SAT",
    • "status": "ENABLED",
    • "type": "NUMBER",
    • "metadata": {
      },
    • "pointMappings": null
    }

    Retrieve Data Streams by Integration ID

    Retrieves a list of Data Stream entities belonging an Integration.

    Authorizations:
    Bearer authentication
    path Parameters
    integrationId
    required
    string <uuid>
    Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

    Unique identifier of the Integration

    query Parameters
    sortBy
    string
    Enum: "STREAM_ID" "STATUS" "TYPE" "POINT_MAPPINGS_COUNT"
    Example: sortBy=STREAM_ID

    Property to sort the results by

    sortDir
    string
    Enum: "ASC" "DESC"
    Example: sortDir=ASC

    Direction to sort the results by

    streamId
    string
    Example: streamId=/Chiller-1

    Used to filter the Data Streams on the streamId field

    limit
    number
    Example: limit=500

    Maximum number data streams to retrieve, when left unset, all Data Streams will be returned

    offset
    number
    Example: offset=100

    Offset to begin returning Data Streams from, to be used along with limit to paginate results

    includePointMappings
    boolean
    Example: includePointMappings=true

    When set to true, Point Mappings associated to each Data Stream will also be included in the response

    Responses

    Response Schema: application/json
    Array
    integrationId
    string <uuid>

    Unique identifier of the Integration

    streamId
    string

    Identifier of the Data Stream (unique within the Organisation)

    status
    string
    Enum: "ENABLED" "DISABLED"

    Whether the Data Stream is enabled or disabled (no longer ingesting data)

    type
    string
    Enum: "NUMBER" "STRING"

    The data type of the history

    metadata
    json

    Json field to store any useful information, for example the unit

    pointMappings
    Array of arrays
    Default: null

    List of Point Mappings associated to this Data Stream (optional)

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Data Stream Mappings

    Data Stream Mappings link a Point to a Data Stream and, therefore, its history. The mapping specifies at what time this relationship starts, using the tsStart property. For a typical 1:1 Point to Data Stream Mapping this will likely be set to the default value of “earliest available” or "0001-01-01T10:00:00+00:00:00". This means the Point will be mapped to the Data Stream from its first timestamp until its latest.

    A Point can also be mapped to multiple Data Streams. In this case, the tsStart of the next mapping is also the end timestamp of the previous mapping.

    The last Data Stream Mapping has no end timestamp and so the Point is mapped to the Data Stream until its latest history, which is continuing to be updated.

    A Data Stream can be mapped to multiple Points, allowing them to share the same history.

    An endpoint is provided to retrieve Data Stream Mappings for a Point as well as an endpoint to set the Data Stream Mappings for a Point.

    Create / Update / Delete Data Stream Mappings by Point ID

    Sets the Data Stream Mapping entities for a Point.

    Authorizations:
    Bearer authentication
    path Parameters
    pointId
    required
    string <uuid>
    Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

    Unique identifier of the Point

    Request Body schema: application/json
    required
    object (DataStreamForDataStreamMappingsRequest)

    Data Stream details required to uniquely identify it

    tsStart
    required
    string <date-time>

    Timestamp at which the Data Stream is associated to the Point

    Responses

    Response Schema: application/json
    Array
    object (DataStream)

    Data Stream details

    tsStart
    string <date-time>

    Timestamp at which the Data Stream is associated to the Point

    Request samples

    Content type
    application/json
    {
    • "dataStream": {
      },
    • "tsStart": "2022-10-08T12:00:00Z"
    }

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Retrieve Data Stream Mappings by Point ID

    Retrieves a list of Data Stream Mapping entities for a Point.

    Authorizations:
    Bearer authentication
    path Parameters
    pointId
    required
    string <uuid>
    Example: 5c198552-51dd-4214-994f-dd089ba0e1dc

    Unique identifier of the Point

    Responses

    Response Schema: application/json
    Array
    object (DataStream)

    Data Stream details

    tsStart
    string <date-time>

    Timestamp at which the Data Stream is associated to the Point

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Actions

    An Action entity represents a real world task or job. Actions are typically focused on optimising the operation of, or rectifying problems identified in, the built environment at a particular Site.

    The Action entity contains:

    • Information about what the Action is and its current status
    • Information about who is responsible for this Action
    • Links, Attachments, Savings and Target Rules related to the Action
    Additionally, it is possible to retrieve Comments for an Action.

    Retrieve Occurrences by Equipment ID

    Retrieves a list of Occurrences for a specific Equipment.

    Authorizations:
    Bearer authentication
    path Parameters
    equipId
    required
    string <uuid>
    Example: 0e366a9c-3b7c-4e4f-8da1-ad0fdfd40c3d

    Unique identifier of the Equipment

    query Parameters
    from
    required
    string <date>
    Example: from=2023-09-08

    Start date of the Occurrence for which Equipment Occurrences are requested

    to
    string <date>
    Default: "9999-12-31"

    End date of the Occurrence for which Equipment Occurrences are requested

    ruleIds
    Array of strings <uuid>
    Example: ruleIds=7404f7e2-4a5a-4362-bc6c-fcbaa792c546

    List of unique Rule IDs for which Equipment Occurrences are requested

    Responses

    Response Schema: application/json
    Array
    occurredOn
    string <date>

    Date on which the Occurrence was triggered

    Array of objects (Times)

    A list of starting times and durations for each individual hit in the Occurrence

    description
    string
    Default: null

    A description of the Occurrence including any relevant meta data

    ruleId
    string <uuid>

    Unique identifier of the Rule that triggered the Occurrence

    equipId
    string <uuid>

    Unique identifier of the Equipment on which the Occurrence was triggered

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Retrieve Actions by Organisation ID and Optional Filters

    Retrieves a list of Actions belonging to an Organisation, optionally filtered by the specified parameters.

    Authorizations:
    Bearer authentication
    path Parameters
    organisationId
    required
    string <uuid>
    Example: 9f1748db-ea2b-4e9a-b035-e5757d7e97c7

    Unique identifier of an Organisation

    query Parameters
    ids
    Array of integers <int64> [ items <int64 > ]
    Default: null
    Example: ids=1234

    Numeric identifier of an Action

    siteIds
    Array of strings <uuid>
    Default: null
    Example: siteIds=8a7869df-6cad-4642-a015-9fbb36d3b337

    List of unique Site Ids the Actions pertain to

    statusIds
    Array of integers <uuid> [ items <uuid > ]
    Default: null
    Example: statusIds=2f4da57d-0c81-4087-bc23-caeb773e26f8

    List of unique Status Ids the Actions have

    updatedBefore
    string <date-time>
    Example: updatedBefore=2021-10-08T12:00:00Z

    Latest timestamp at which the Actions were last updated

    updatedAfter
    string <date-time>
    Example: updatedAfter=2021-10-08T12:00:00Z

    Earliest timestamp at which the Actions were last updated

    createdBefore
    string <date-time>
    Example: createdBefore=2021-10-08T12:00:00Z

    Latest timestamp at which the Actions were created

    createdAfter
    string <date-time>
    Example: createdAfter=2021-10-08T12:00:00Z

    Earliest timestamp at which the Actions were created

    closedBefore
    string <date-time>
    Example: closedBefore=2021-10-08T12:00:00Z

    Latest timestamp at which the Actions were closed

    closedAfter
    string <date-time>
    Example: closedAfter=2021-10-08T12:00:00Z

    Earliest timestamp at which the Actions were closed

    Responses

    Response Schema: application/json
    Array
    id
    integer <int64>

    Numeric identifier of the Action

    siteId
    string <uuid>

    Unique identifier of the Site to which Action belongs

    organisationId
    string <uuid>

    Unique identifier of the Organisation to which Action belongs

    summary
    string

    Summary of the Action

    description
    string

    Description of the Action

    object (Status)

    Status of the Action

    severity
    string
    Enum: "Blocker" "Critical" "Major" "Moderate" "Minor" "Trivial"

    Severity of the Action

    type
    string
    Enum: "Maintenance" "DLP" "Optimisation" "Other"

    Type of the Action

    object

    Team to which the Action is assigned

    object

    Details of the User assigned to the Action

    object

    Details of the user who created the Action

    createdAt
    string <date-time>

    Timestamp at which the Action was created

    object

    Details of the user who last updated the Action

    updatedAt
    string <date-time>

    Timestamp at which the Action was last updated

    closedAt
    string <date-time>

    Timestamp at which the Action was closed

    Array of objects (Attachment)
    Array of objects (Link)
    Array of objects (TargetRule)
    Array of objects (Saving)

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Retrieve Comments by Organisation ID and Action ID

    Retrieves a list of Comments belonging to an Action.

    Authorizations:
    Bearer authentication
    path Parameters
    organisationId
    required
    string <uuid>
    Example: 9f1748db-ea2b-4e9a-b035-e5757d7e97c7

    Unique identifier of an Organisation

    actionId
    required
    integer <int64>
    Example: 1234

    Numeric identifier of an Action within an Organisation

    Responses

    Response Schema: application/json
    Array
    id
    string <uuid>

    Unique identifier of the Comment

    organisationId
    string <uuid>

    Unique identifier of the Organisation to which the Comment belongs

    actionId
    integer <int64>

    Numeric identifier of the Action to which the Comment belongs

    comment
    string

    Content of the Comment

    object

    Details of the user who created the Comment

    createdAt
    string <date-time>

    Timestamp at which the Comment was created

    object

    Details of the user who last updated the Comment

    updatedAt
    string <date-time>

    Timestamp at which the Comment was last updated

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Retrieve Statuses by Organisation ID

    Retrieves a list of Status entities belonging to an Organisation. This list represents the Status that an Action can potentially have.

    Authorizations:
    Bearer authentication
    path Parameters
    organisationId
    required
    string <uuid>
    Example: 9f1748db-ea2b-4e9a-b035-e5757d7e97c7

    Unique identifier of an Organisation

    Responses

    Response Schema: application/json
    Array
    id
    string <uuid>

    Unique identifier of the Status

    name
    string
    Enum: "Open" "New Action" "Work In Progress" "Scope Required" "To Be Quoted" "Pending PO" "In Review" "Parked" "Closed" "Rejected"

    Name of the Status

    object

    Type of the Status

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Weather

    Hourly weather data is available for each Site from its closest weather station. The weather data is available in either Metric or US customary (USC) units.

    Retrieve Weather Observations by Site ID

    Retrieves a list of weather observations for a specific Site and optional time period (returns all weather observations if both to and from are not provided).

    Authorizations:
    Bearer authentication
    path Parameters
    siteId
    required
    string <uuid>
    Example: 8a7869df-6cad-4642-a015-9fbb36d3b337

    Unique identifier of the Site

    query Parameters
    from
    string <date-time>
    Default: null
    Example: from=2022-10-08T04:23:00.000Z

    Start timestamp of the period requested

    to
    string <date-time>
    Default: null
    Example: to=2022-10-12T04:23:00.000Z

    End timestamp of the period requested

    aggregateType
    string (WeatherAggregateType)
    Default: "RAW"
    Enum: "RAW" "FIVE_MINUTE" "QUARTER_HOURLY" "HALF_HOURLY" "HOURLY" "DAILY" "MONTHLY" "QUARTERLY" "YEARLY"
    Example: aggregateType=RAW

    The interval to which the observations are aggregated to e.g. an interval of HOURLY will rollup all timestamps into a single timestamp per hour on the hour

    unitSystem
    string (UnitSystem)
    Default: "METRIC"
    Enum: "METRIC" "USC"
    Example: unitSystem=METRIC

    Unit system applied to the weather observations

    Responses

    Response Schema: application/json
    One of
    Array
    observationTs
    string <date-time>

    Timestamp at which the observation was recorded at the weather station

    requestTs
    string <date-time>

    Timestamp at which the observation was requested from the weather station

    airQualityIndex
    integer <int16>
    Default: null

    Air quality index (range: 0 to 500+)

    apparentTemperature
    number

    Apparent temperature (˚C when unitSystem = METRIC, or ˚F when unitSystem = USC )

    cloudCoverage
    number

    Cloud coverage (%)

    dewPoint
    number

    Dew point (˚C when unitSystem = METRIC, or ˚F when unitSystem = USC )

    diffuseHorizontalSolarIrradiance
    number

    Diffuse horizontal solar irradiance (W/m²)

    directNormalSolarIrradiance
    number

    Direct normal solar irradiance (W/m²)

    globalHorizontalSolarIrradiance
    number

    Global horizontal solar irradiance (W/m²)

    precipitation
    number

    Precipitation (mm/h when unitSystem = METRIC, or in/h when unitSystem = USC )

    pressure
    number

    Pressure (mbar)

    relativeHumidity
    number

    Relative humidity (%)

    seaLevelPressure
    number

    Sea level pressure (mbar)

    snow
    number

    Snowfall (mm/h when unitSystem = METRIC, or in/h when unitSystem = USC )

    solarElevationAngle
    number

    Solar elevation angle (˚)

    solarHourAngle
    number

    Solar hour angle (˚)

    solarRadiation
    number

    Solar Radiation (W/m²)

    sunrise
    string
    Default: null

    Local time (hh:mm:ss) at which sun rises

    sunset
    string
    Default: null

    Local time (hh:mm:ss) at which sun sets

    temperature
    number

    Temperature (˚C when unitSystem = METRIC, or ˚F when unitSystem = USC )

    uvIndex
    integer <int16>

    UV Index (range: 0 to 11+)

    visibility
    number

    Visibility (km when unitSystem = METRIC, or mi when unitSystem = USC )

    weatherCode
    integer
    Enum: 200 201 202 230 231 232 233 300 301 500 501 502 511 520 521 522 600 601 602 610 611 612 621 622 623 700 711 721 731 741 751 800 801 802 803 804 900

    Weather code that indicates what the weather is like.

    • 200 - Thunderstorm with light rain

    • 201 - Thunderstorm with rain

    • 202 - Thunderstorm with heavy rain

    • 230 - Thunderstorm with light drizzle

    • 231 - Thunderstorm with drizzle

    • 232 - Thunderstorm with heavy drizzle

    • 233 - Thunderstorm with hail

    • 300 - Light drizzle

    • 301 - Heavy drizzle

    • 500 - Light rain

    • 501 - Moderate rain

    • 502 - Heavy rain

    • 511 - Freezing rain

    • 520 - Light shower rain

    • 521 - Shower rain

    • 522 - Heavy shower rain

    • 600 - Light snow

    • 601 - Snow

    • 602 - Heavy snow

    • 610 - Mix snow/rain

    • 611 - Sleet

    • 612 - Heavy sleet

    • 621 - Snow shower

    • 622 - Heavy snow shower

    • 623 - Flurries

    • 700 - Mist

    • 711 - Smoke

    • 721 - Haze

    • 731 - Sand/dust

    • 741 - Fog

    • 751 - Freezing fog

    • 800 - Clear sky

    • 801 - Few clouds

    • 802 - Scattered clouds

    • 803 - Broken clouds

    • 804 - Overcast clouds

    • 900 - Unknown precipitation

    wetBulb
    number

    Wet bulb temperature (˚C when unitSystem = METRIC, or ˚F when unitSystem = USC )

    windDirection
    number

    Wind direction (˚)

    windSpeed
    number

    Wind speed (m/s when unitSystem = METRIC, or mi/h when unitSystem = USC )

    Response samples

    Content type
    application/json
    Example
    [ ]

    Users

    Retrieve your user details.

    Retrieve current user details

    Retrieves the currently logged in user's details.

    Authorizations:
    Bearer authentication

    Responses

    Response Schema: application/json
    id
    string <uuid>

    Unique identifier of the User

    fullName
    string

    Full name of the User

    email
    string <email>

    Email of the User

    status
    string

    Status of the User, possible options are active or deleted

    createdAt
    string <date-time>

    Timestamp when the User was created in LocalDateTime (YYYY-MM-DDThh:mm:ss)

    updatedAt
    string <date-time>

    Timestamp when the User was last updated in LocalDateTime (YYYY-MM-DDThh:mm:ss)

    optOutUserTracking
    boolean

    Boolean to indicate whether the User has opted out from user tracking

    Response samples

    Content type
    application/json
    {
    • "id": "346f074a-25fb-4c98-8871-3aa8a4c12854",
    • "fullName": "Leon Wurfel",
    • "email": "user@example.com",
    • "status": "active",
    • "createdAt": "2017-05-30T01:17:07",
    • "updatedAt": "2022-10-04T05:45:07",
    • "optOutUserTracking": false
    }