Layla 3rd Party API (v1)

Download OpenAPI specification:Download

Introduction

An HTTP REST API to allow 3rd party application to communicate with LaylaElectric cloud. This API can be used to access some basic information about properties, devices and features offered my LaylaElectric products.

Authentication

Getting your access token: LaylaElectric 3rd Party API uses OAuth 2.0 Authentication and Authorization. In order to get detailed information about integration with our API, contact us at api@layla.eco.

Using your access token: Every API call should include Access token as Bearer token.

Error States

The common HTTP Response Status Codes are used.

In general:

  • 200's: everything is ok. You may need to check the message with the 200 anyway in some cases to do certain thing.

users

User management

Get currently logged-in user

Authorizations:
JWT

Responses

Response samples

Content type
application/json
{
  • "picture_preview_url": "string",
  • "name": "string",
  • "accepted_policy": 0,
  • "email": "string",
  • "address": "string",
  • "phone": "string",
  • "company": "string",
  • "title": "string",
  • "preferences": {
    },
  • "notification_preferences": {
    }
}

Update currently logged-in user

Authorizations:
JWT
Request Body schema: application/json
picture_url
string
name
required
string
accepted_policy
integer
email
string
address
required
string
phone
required
string
company
required
string
title
required
string
object
object

Responses

Request samples

Content type
application/json
{
  • "picture_url": "string",
  • "name": "string",
  • "accepted_policy": 0,
  • "email": "string",
  • "address": "string",
  • "phone": "string",
  • "company": "string",
  • "title": "string",
  • "preferences": {
    },
  • "notification_preferences": {
    }
}

Response samples

Content type
application/json
{
  • "picture_preview_url": "string",
  • "name": "string",
  • "accepted_policy": 0,
  • "email": "string",
  • "address": "string",
  • "phone": "string",
  • "company": "string",
  • "title": "string",
  • "preferences": {
    },
  • "notification_preferences": {
    }
}

Patch (update partially) currently logged-in user

Authorizations:
JWT
Request Body schema: application/json
picture_url
string

Should be obtained from 'POST /api/v1/users/self/picture/upload_urls'

name
string
accepted_policy
integer
email
string
address
string
phone
string
company
string
title
string
object
object

Responses

Request samples

Content type
application/json
{
  • "picture_url": "string",
  • "name": "string",
  • "accepted_policy": 0,
  • "email": "string",
  • "address": "string",
  • "phone": "string",
  • "company": "string",
  • "title": "string",
  • "preferences": {
    },
  • "notification_preferences": {
    }
}

Response samples

Content type
application/json
{
  • "picture_preview_url": "string",
  • "name": "string",
  • "accepted_policy": 0,
  • "email": "string",
  • "address": "string",
  • "phone": "string",
  • "company": "string",
  • "title": "string",
  • "preferences": {
    },
  • "notification_preferences": {
    }
}

properties

Property management

List properties for current (logged-in) user

Authorizations:
JWT
query Parameters
id
string

ID of the specific property

currency
string (CurrencyCode)
Enum: "USD" "EUR" "GBP" "ILS" "BRL"
fields
Array of strings
Items Enum: "alarm_event_counts" "monthly_savings" "total_savings" "total_efficiency_gains"

Comma-separated list of additional fields to be included into response

sort_by
string

Sorting by parameter

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new property

Authorizations:
JWT
Request Body schema: application/json
name
required
string
category
required
string
Enum: "house" "apartment" "office" "commercial"
address
required
string
timezone
required
string
object
enabled
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "category": "house",
  • "address": "string",
  • "timezone": "string",
  • "settings": {
    },
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "role": "admin",
  • "enabled_alarms": [
    ],
  • "enabled_features": [
    ],
  • "alarm_event_counts": [
    ],
  • "monthly_savings": {
    },
  • "total_savings": {
    },
  • "total_efficiency_gains": 0,
  • "name": "string",
  • "category": "house",
  • "address": "string",
  • "timezone": "string",
  • "settings": {
    },
  • "enabled": true
}

Update a property

Authorizations:
JWT
path Parameters
id
required
string
Request Body schema: application/json
name
required
string
category
required
string
Enum: "house" "apartment" "office" "commercial"
address
required
string
timezone
required
string
object
enabled
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "category": "house",
  • "address": "string",
  • "timezone": "string",
  • "settings": {
    },
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "role": "admin",
  • "enabled_alarms": [
    ],
  • "enabled_features": [
    ],
  • "alarm_event_counts": [
    ],
  • "monthly_savings": {
    },
  • "total_savings": {
    },
  • "total_efficiency_gains": 0,
  • "name": "string",
  • "category": "house",
  • "address": "string",
  • "timezone": "string",
  • "settings": {
    },
  • "enabled": true
}

Patch (update partially) a property

Authorizations:
JWT
path Parameters
id
required
string
Request Body schema: application/json
name
string
category
string
Enum: "house" "apartment" "office" "commercial"
address
string
timezone
string
object
enabled
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "category": "house",
  • "address": "string",
  • "timezone": "string",
  • "settings": {
    },
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "role": "admin",
  • "enabled_alarms": [
    ],
  • "enabled_features": [
    ],
  • "alarm_event_counts": [
    ],
  • "monthly_savings": {
    },
  • "total_savings": {
    },
  • "total_efficiency_gains": 0,
  • "name": "string",
  • "category": "house",
  • "address": "string",
  • "timezone": "string",
  • "settings": {
    },
  • "enabled": true
}

Activate/Deactivate a property alarms

Authorizations:
JWT
path Parameters
id
required
string
query Parameters
noise_alarm
boolean
noise_alarm_quiet_hours
boolean
occupancy_alarm
boolean
occupancy_alarm_quiet_hours
boolean
security_alarm
boolean

Responses

Activate/Deactivate a property eco mode

Authorizations:
JWT
path Parameters
id
required
string
query Parameters
eco_mode
boolean

Responses

Get property measurements

Authorizations:
JWT
path Parameters
id
required
string
query Parameters
measure
required
string
Enum: "power" "temperature" "noise"
granularity
string (TimeGranularity)
Enum: "hours" "days" "months" "years"
start
string <date-time> (start date-time in ISO format (without timezone, timezone is taken from the device property) (inclusive))
end
string <date-time> (end date-time in ISO format (without timezone, timezone is taken from the device property) (exclusive))

Responses

Response samples

Content type
application/json
[
  • {
    }
]

devices

Device management

List devices for current (logged-in) user

Authorizations:
JWT
query Parameters
fields
Array of strings
Items Enum: "alarm_event_counts" "latest_values" "in_alarm" "snoozed" "active_alarms"

Comma-separated list of additional fields to be included into response

property_id
string

The ID of the property to receive the devices for

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new device (register)

Authorizations:
JWT
Request Body schema: application/json
property_id
required
string
device_mac
required
string
category
required
string
Value: "SP"
name
required
string
enabled
boolean
Array of objects (Alarms configuration)
features
Array of strings
Items Value: "eco"
object (DeviceSettingsModel)

Responses

Request samples

Content type
application/json
{
  • "property_id": "string",
  • "device_mac": "string",
  • "category": "SP",
  • "name": "string",
  • "enabled": true,
  • "alarms": [
    ],
  • "features": [
    ],
  • "settings": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "property_id": "string",
  • "alarm_event_counts": [
    ],
  • "latest_values": [
    ],
  • "in_alarm": [
    ],
  • "snoozed": [
    ],
  • "active_alarms": [
    ],
  • "device_mac": "string",
  • "category": "SP",
  • "name": "string",
  • "enabled": true,
  • "alarms": [
    ],
  • "features": [
    ],
  • "settings": {
    }
}

Get device details

Authorizations:
JWT
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "property_id": "string",
  • "alarm_event_counts": [
    ],
  • "latest_values": [
    ],
  • "in_alarm": [
    ],
  • "snoozed": [
    ],
  • "active_alarms": [
    ],
  • "device_mac": "string",
  • "category": "SP",
  • "name": "string",
  • "enabled": true,
  • "alarms": [
    ],
  • "features": [
    ],
  • "settings": {
    }
}

Patch (update partially) a device

Authorizations:
JWT
path Parameters
id
required
string
Request Body schema: application/json
device_mac
string
category
string
Value: "SP"
name
string
enabled
boolean
Array of objects (Alarms configuration)
features
Array of strings
Items Value: "eco"
object (DeviceSettingsModel)

Responses

Request samples

Content type
application/json
{
  • "device_mac": "string",
  • "category": "SP",
  • "name": "string",
  • "enabled": true,
  • "alarms": [
    ],
  • "features": [
    ],
  • "settings": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "property_id": "string",
  • "alarm_event_counts": [
    ],
  • "latest_values": [
    ],
  • "in_alarm": [
    ],
  • "snoozed": [
    ],
  • "active_alarms": [
    ],
  • "device_mac": "string",
  • "category": "SP",
  • "name": "string",
  • "enabled": true,
  • "alarms": [
    ],
  • "features": [
    ],
  • "settings": {
    }
}

Get device measurements

Authorizations:
JWT
path Parameters
id
required
string
query Parameters
measure
required
string
Enum: "power" "temperature" "noise"
granularity
string (TimeGranularity)
Enum: "hours" "days" "months" "years"
start
string <date-time> (start date-time in ISO format (without timezone, timezone is taken from the device property) (inclusive))
end
string <date-time> (end date-time in ISO format (without timezone, timezone is taken from the device property) (exclusive))

Responses

Response samples

Content type
application/json
[
  • {
    }
]

statistics

Various statistics

Get statistics

Authorizations:
JWT
query Parameters
category
string

category of property (can be acquired from property API)

period
string
Enum: "day" "week" "month" "year"
currency
string (CurrencyCode)
Enum: "USD" "EUR" "GBP" "ILS" "BRL"
property_id
string
device_id
string
fields
Array of strings
Items Value: "trends"

Comma-separated list of additional fields to be included into response

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Savings temporal breakdown

Authorizations:
JWT
query Parameters
category
string

property category

property_ids
Array of strings

Comma-separated list of property ids

device_ids
Array of strings

Comma-separated list of device ids

start
string <date-time>
end
string <date-time>
timezone
string
granularity
string (TimeGranularity)
Enum: "hours" "days" "months" "years"
currency
string (CurrencyCode)
Enum: "USD" "EUR" "GBP" "ILS" "BRL"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Savings summary

Authorizations:
JWT
query Parameters
category
string

property category

property_ids
Array of strings

Comma-separated list of property ids

device_ids
Array of strings

Comma-separated list of device ids

start
string <date-time>
end
string <date-time>
timezone
string
currency
string (CurrencyCode)
Enum: "USD" "EUR" "GBP" "ILS" "BRL"

Responses

Response samples

Content type
application/json
{
  • "energy": 0,
  • "costs": 0,
  • "co2": 0,
  • "trees": 0
}

Alarm events temporal breakdown

Authorizations:
JWT
path Parameters
name
required
string

event name

query Parameters
category
string

property category

property_ids
Array of strings

Comma-separated list of property ids

device_ids
Array of strings

Comma-separated list of device ids

start
string <date-time>
end
string <date-time>
timezone
string
granularity
string (TimeGranularity)
Enum: "hours" "days" "months" "years"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Alarm events summary

Authorizations:
JWT
path Parameters
name
required
string

alarm name

query Parameters
category
string

property category

property_ids
Array of strings

Comma-separated list of property ids

device_ids
Array of strings

Comma-separated list of device ids

start
string <date-time>
end
string <date-time>
timezone
string

Responses

Response samples

Content type
application/json
{
  • "value": 0
}

Savings temporal breakdown

Authorizations:
JWT
query Parameters
category
string

property category

property_ids
Array of strings

Comma-separated list of property ids

device_ids
Array of strings

Comma-separated list of device ids

start
string <date-time>
end
string <date-time>
timezone
string
granularity
string (TimeGranularity)
Enum: "hours" "days" "months" "years"
currency
string (CurrencyCode)
Enum: "USD" "EUR" "GBP" "ILS" "BRL"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

summary

Authorizations:
JWT
query Parameters
category
string

property category

property_ids
Array of strings

Comma-separated list of property ids

device_ids
Array of strings

Comma-separated list of device ids

start
string <date-time>
end
string <date-time>
timezone
string
currency
string (CurrencyCode)
Enum: "USD" "EUR" "GBP" "ILS" "BRL"

Responses

Response samples

Content type
application/json
{
  • "value": 0
}

sensor requests

Create a new sensor request

Authorizations:
JWT
Request Body schema: application/json
property_id
string
property_name
string
sensors_count
required
number
country
string
city
string
street
string
apartment
string

Responses

Request samples

Content type
application/json
{
  • "property_id": "string",
  • "property_name": "string",
  • "sensors_count": 0,
  • "country": "string",
  • "city": "string",
  • "street": "string",
  • "apartment": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "property_id": "string",
  • "property_name": "string",
  • "sensors_count": 0,
  • "country": "string",
  • "city": "string",
  • "street": "string",
  • "apartment": "string",
  • "created_at": "2019-08-24T14:15:22Z"
}

notifications

Get notifications

Authorizations:
JWT
query Parameters
property_id
string
seen
boolean
types
Array of strings
Items Enum: "noise_alarm_start" "noise_alarm_end" "noise_alarm_quiet_hours_start" "noise_alarm_quiet_hours_end" "occupancy_alarm_start" "occupancy_alarm_end" "device_off_alarm_start" "device_off_alarm_end" "device_off_alarm_multiple_start" "device_off_alarm_multiple_end" "security_alarm_start" "security_alarm_end" "eco_mode_enabled"
start
string <date-time>
end
string <date-time>
timezone
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get latest notifications by property

Authorizations:
JWT
query Parameters
property_ids
Array of strings
types
Array of strings
Items Enum: "noise_alarm_start" "noise_alarm_end" "noise_alarm_quiet_hours_start" "noise_alarm_quiet_hours_end" "occupancy_alarm_start" "occupancy_alarm_end" "device_off_alarm_start" "device_off_alarm_end" "device_off_alarm_multiple_start" "device_off_alarm_multiple_end" "security_alarm_start" "security_alarm_end" "eco_mode_enabled"
start
string <date-time>
timezone
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]