openapi: 3.1.0
info:
title: Insights API
version: 3.4.1
contact:
name: Insights Team
email: support_b2b@eliq.com
description: "# API Reference\n\nThe Eliq insights API is organized around [REST](https://en.wikipedia.org/wiki/REST).\n\
API has predictable resource oriented URLs, accepts [JSON-encoded](https://www.json.org/json-en.html) request bodies,\
\ returns JSON-encoded responses, and uses standard HTTP response codes and verbs.\nInsights API contains endpoints for\
\ two entities: Users and Locations.\n\n# Date and Time\n\nDates and Datetimes follow [ISO 8601](https://en.m.wikipedia.org/wiki/ISO_8601)\
\ format.\nAll dates and times are in `local time zone` - no UTC or other timezone specification is allowed for the queries\
\ and will result in error. Local timezone was chosen to make the data ready for presentation.\n\n# Responses and Errors\n\
\nEliq insights API uses standard HTTP response codes to indicate success or failure of a request:\n- 2xx indicate success\n\
- 4xx indicate error due to invalid input\n- 5xx indicates an internal error of Eliq Insights API\n\n## Status codes\n\
\n*Status code* | *Description*\n--- | ---\n200 - OK | Everything worked as expected.\n201 - Created | Resource created.\n\
204 - No Content | Successful request. Used in successful delete requests\n302 - Found | Resource requested has been temporarily\
\ moved to the URL given by the Location header.\n400 - Bad Request | Request input data is invalid. \n401 - Unauthorized\
\ | Access token invalid for the given request. E.g. access token expired.\n404 - Not Found | Requested resource not found.\n\
500, 502, 503, 504 | Something wrong with the Insights API.\n\n## Error body\n\nEliq Insights API returns an error response\
\ body on failures to provide additional information on the error.\n\nSome fields have been deprecated. Deprecated fields\
\ will continue to be used in existing endpoints, but will not show up in any new additions.\n\n| *Field* | *Type* | *Deprecated*\
\ | *Description* |\n| --- | --- | --- | --- |\n| type | String | Yes | Type of error. One of `third_party_error`, `internal_error`,\
\ `client_error` and `end_user_error`. |\n| category | String | Yes | Category of the error. E.g. `invalid_parameter`.\
\ Used to guide developers. |\n| code | String | | Error code specific to each issue. |\n| description | String | |\
\ A description of the error for more context and easier debugging.|\n| message | String | Yes | A message related to\
\ the error which can be shown to end users. |\n| transaction_id | String | | Transaction identifier with which request\
\ is associated. Pass this when contacting support |\n\nExample:\n\n```json\n { \n \"type\":\"client_error\",\n \
\ \"category\":\"invalid_parameter\",\n \"code\":\"MISSING_TO\",\n \"description\":\"Invalid parameter 'to'. Cannot\
\ be null\",\n \"message\":\"Something went wrong, please try again later. If problem remains, please contact support\
\ (error: 1ad3a534117d4).\",\n \"transaction_id\":\"1ad3a534117d4\",\n }\n```"
servers:
- url: https://eliq.insights-api.eliq.com
description: 'Production (tenant-prefixed host; your own base URL is issued by Eliq — form: https://{tenant}.insights-api.eliq.com)'
paths:
/v3/users/{userId}:
parameters:
- schema:
type: integer
name: userId
in: path
required: true
description: Eliq internal id of user
get:
summary: Get user by Eliq internal ID
tags:
- Users
responses:
'200':
description: User Found
content:
application/json:
schema:
$ref: '#/components/schemas/User'
examples:
John Doe:
value:
id: 1234
ext_ref: aec78361-f5b6-44cc-b9e6-935bd5053592
name: John
phone: '+46731234123'
email: john.doe@email.com
language_code: en-GB
'404':
description: 'User Not Found
This error is thrown if no user with the given id could not be found'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
User not found:
value:
type: client_error
category: invalid_parameter
code: USER_NOT_FOUND
description: Could not find user with Id '123'
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
operationId: get-v3-users-userId
description: Retrieve the information of the user with the matching user ID.
/v3/users/{userId}/consents:
parameters:
- schema:
type: integer
name: userId
in: path
required: true
description: Eliq internal id of user
get:
summary: Get User Consents
tags:
- Users
responses:
'200':
description: Get list of user consents
content:
application/json:
schema:
x-examples:
example-1:
- version_id: 2f321e42-c1fe-4abf-8f16-44dcce756943
name: privacy_policy
given_consent: true
language_code: en-GB
type: array
items:
$ref: '#/components/schemas/Consent'
examples:
List of consents:
value:
- version_id: f5bba2be-cf4f-4f7e-8237-7476025da0ff
name: terms_and_conditions
given_consent: false
is_updated: true
is_mandatory: true
timestamp: '2022-06-28T13:54:43.369558Z'
language_code: en-GB
data:
url: https://your-website-url.com/terms-and-conditions
- version_id: 43cceb46-e598-43c1-8f25-d6d30b765d9a
name: privacy_policy
given_consent: true
is_updated: false
is_mandatory: true
timestamp: '2022-06-25T10:11:30.2211223Z'
language_code: en-GB
data:
url: https://your-website-url.com/privacy_policy
'404':
description: 'User Not Found
This error is thrown if no user with the given id could not be found'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
User not found:
value:
type: client_error
category: invalid_parameter
code: USER_NOT_FOUND
description: Could not find user with Id '123'
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
operationId: get-v3-users-userId-consents
description: Retrieve the list of the user consents.
put:
summary: Update User Consents
operationId: put-v3-users-userId-consents
responses:
'200':
description: OK
description: Update single or multiple consents for a user.
requestBody:
content:
application/json:
schema:
type: array
x-examples:
example-1:
- version_id: 2f321e42-c1fe-4abf-8f16-44dcce756943
name: privacy_policy
given_consent: true
language_code: en-GB
items:
type: object
properties:
version_id:
type: string
name:
type: string
given_consent:
type: boolean
language_code:
type: string
required:
- version_id
- name
- given_consent
- language_code
tags:
- Users
/v3/users:
parameters: []
get:
summary: Get user by Eliq external reference
tags:
- Users
responses:
'200':
description: User Found
content:
application/json:
schema:
$ref: '#/components/schemas/User'
examples:
John Doe:
value:
id: 1234
ext_ref: aec78361-f5b6-44cc-b9e6-935bd5053592
name: John
phone: '+46731234123'
email: john.doe@email.com
language_code: en-GB
'404':
description: 'User Not Found
This error is thrown if no user with the given extref could not be found'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
User not found:
value:
type: client_error
category: user_not_found
code: USER_NOT_FOUND
description: Could not find user with Id '123'
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
operationId: get-v3-users-userExtref
description: Retrieve the information of the user with the matching user external reference (client's id). This request
should be used to query the API using the ID sent in through Eliq data management API
parameters:
- schema:
type: string
example: aec78361-f5b6-44cc-b9e6-935bd5053592
in: query
name: extref
description: User external reference
required: true
/v3/Users/{userId}/locations:
get:
tags:
- Users
summary: Get user locations
description: Retrieve locations attached to the user with the matching user ID.
operationId: get--v3-users-userId-locations
parameters:
- name: userId
in: path
description: User's id
required: true
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Location'
examples:
User locations response:
value:
- id: 1233
name: Stora Badhusgatan 17-20
ext_ref: '4537899'
timezone: Europe/Berlin
address:
street_address: Stora Badhusgatan 17-20
postal_code: '41120'
city: Göteborg
country_code: SE
lon: 22.12
lat: 56.32
fuels:
elec:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
export:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
consumption:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
production:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: ok
gas:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: waiting_for_data
meters:
- id: e7c8938fe06a44a7923ed89da281705e
model: Standard Energy V1
user_setup_completed: true
name_user: Main house meter
fuel_type: elec
direction: import
is_sub_meter: false
category_user: other
supply_start_date: '2026-01-01T00:00:00'
supply_end_date: '2026-12-31T00:00:00'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
User not found:
value:
type: client_error
category: user_not_found
code: USER_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find user with Id '1234567'
User's Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find the location.
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
type: internal_error
category: internal_error
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong. Please try again later. If problem remains, please contact support.
description: Internal server error, please try again later. If problem remains, please contact support.
/v3/locations/{locationId}:
get:
tags:
- Locations
summary: Get location by internal id
description: "Get location by Eliq internal ID\r\n \r\nRetrieve the information of the location with the\
\ matching location ID."
operationId: get-v3-locations-locationId
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Location'
examples:
Sample Location (with two meters):
value:
id: 1233
name: Stora Badhusgatan 17-20
ext_ref: '4537899'
timezone: Europe/Berlin
address:
street_address: Stora Badhusgatan 17-20
postal_code: '41120'
city: Göteborg
country_code: SE
lon: 22.12
lat: 56.32
fuels:
elec:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
export:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
consumption:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
production:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
gas:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
meters:
- id: e01dbb49507f447fa8518249cd7620dd
model: Standard Energy V1
user_setup_completed: true
name_user: Gas Energy Meter
fuel_type: gas
direction: import
is_sub_meter: false
category_user: washing
supply_start_date: '2026-01-01T00:00:00'
supply_end_date: '2026-12-31T00:00:00'
- id: e4c8938fe06a44a7923ed89da281705e
model: Standard Energy V1
user_setup_completed: false
name_suggested: Standard Energy V-2
fuel_type: elec
direction: import
is_sub_meter: true
category_suggested: washing
supply_start_date: '2026-01-01T00:00:00'
supply_end_date: '2026-12-31T00:00:00'
Location with meter setup:
value:
id: 1233
name: Stora Badhusgatan 17-20
ext_ref: '4537899'
timezone: Europe/Berlin
address:
street_address: Stora Badhusgatan 17-20
postal_code: '41120'
city: Göteborg
country_code: SE
lon: 22.12
lat: 56.32
fuels:
elec:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
export:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
consumption:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
production:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
gas:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
meters:
- id: e7c8938fe06a44a7923ed89da281705e
model: Standard Energy V1
user_setup_completed: true
name_user: Main house meter
fuel_type: elec
direction: import
is_sub_meter: false
category_user: other
supply_start_date: '2026-01-01T00:00:00'
supply_end_date: '2026-12-31T00:00:00'
Location without meter setup:
value:
id: 1233
name: Stora Badhusgatan 17-20
ext_ref: '4537899'
timezone: Europe/Berlin
address:
street_address: Stora Badhusgatan 17-20
postal_code: '41120'
city: Göteborg
country_code: SE
lon: 22.12
lat: 56.32
fuels:
elec:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
export:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
consumption:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
production:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
gas:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
meters:
- id: e7c8938fe06a44a7923ed89da281705e
model: Standard Energy V1
user_setup_completed: false
name_suggested: Standard Energy V1
fuel_type: elec
direction: import
is_sub_meter: false
category_suggested: other
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
type: internal_error
category: internal_error
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong. Please try again later. If problem remains, please contact support.
description: Internal server error, please try again later. If problem remains, please contact support.
/v3/locations:
get:
tags:
- Locations
summary: Get location by Eliq external reference
description: Retrieve the information of the location with the matching location external reference id.
operationId: get-v3-locations-locationExtref
parameters:
- name: extRef
in: query
description: Location external reference
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Location'
examples:
Sample Location (with two meters):
value:
id: 1233
name: Stora Badhusgatan 17-20
ext_ref: '4537899'
timezone: Europe/Berlin
address:
street_address: Stora Badhusgatan 17-20
postal_code: '41120'
city: Göteborg
country_code: SE
lon: 22.12
lat: 56.32
fuels:
elec:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
export:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
consumption:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
production:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
gas:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
meters:
- id: e01dbb49507f447fa8518249cd7620dd
user_setup_completed: true
name_user: Gas Energy Meter
fuel_type: gas
direction: import
is_sub_meter: false
category_user: washing
- id: e4c8938fe06a44a7923ed89da281705e
user_setup_completed: false
name_suggested: Standard Energy V-2
fuel_type: elec
direction: import
is_sub_meter: true
category_suggested: washing
Location with meter setup:
value:
id: 1233
name: Stora Badhusgatan 17-20
ext_ref: '4537899'
timezone: Europe/Berlin
address:
street_address: Stora Badhusgatan 17-20
postal_code: '41120'
city: Göteborg
country_code: SE
lon: 22.12
lat: 56.32
fuels:
elec:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
export:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
consumption:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
production:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
gas:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
meters:
- id: e7c8938fe06a44a7923ed89da281705e
user_setup_completed: true
name_user: Main house meter
fuel_type: elec
direction: import
is_sub_meter: false
category_user: other
Location without meter setup:
value:
id: 1233
name: Stora Badhusgatan 17-20
ext_ref: '4537899'
timezone: Europe/Berlin
address:
street_address: Stora Badhusgatan 17-20
postal_code: '41120'
city: Göteborg
country_code: SE
lon: 22.12
lat: 56.32
fuels:
elec:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
export:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
consumption:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
production:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: pv_disagg
sync_status: waiting_for_data
gas:
import:
resolution: hour
data_from: '2019-01-01T00:00:00'
data_to: '2020-01-01T00:00:00'
source: smart_meter
sync_status: ok
meters:
- id: e7c8938fe06a44a7923ed89da281705e
user_setup_completed: false
name_suggested: Standard Energy V1
fuel_type: elec
direction: import
is_sub_meter: false
category_suggested: other
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid parameter:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'extref' missing
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
type: internal_error
category: internal_error
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong. Please try again later. If problem remains, please contact support.
description: Internal server error, please try again later. If problem remains, please contact support.
/v3/locations/{locationId}/notifications:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
get:
summary: Get location Notifications
tags:
- Locations
responses:
'200':
description: Location found
content:
application/json:
schema:
type: array
items:
type: object
schema:
$ref: '#/components/schemas/Notification'
x-examples:
example-1:
- id: 37117550
type: market_price_next_day_avg_price_alert
read: true
created_date: '2023-01-22T16:01:17.23'
header: Tomorrows market electricity prices are high!
content: Tomorrow the average market prices are high, averaging 1,66 kr/kWh. The prices peak 2,93 kr/kWh
at 09:00-10:00.
- id: 37054931
type: market_price_next_day_hour_price_alert
read: true
created_date: '2023-01-21T16:00:39.18'
header: Tomorrow the market prices are high!
content: Tomorrow you should avoid using excess electricity between 18:00-19:00 when the price is 2,19
kr/kWh.
- id: 36912603
type: market_price_next_day_avg_price_alert
read: true
created_date: '2023-01-18T16:01:25.223'
header: Tomorrows market electricity prices are high!
content: Tomorrow the average market prices are high, averaging 1,49 kr/kWh. The prices peak 2,01 kr/kWh
at 16:00-17:00.
- id: 36831730
type: market_price_next_day_avg_price_alert
read: true
created_date: '2023-01-14T16:01:32.003'
header: Low market prices tomorrow
content: Tomorrow the average market prices are low, averaging at 0,20 kr/kWh 🙂. The price will be at
its lowest 05:00-06:00 at 0,05 kr/kWh.
- id: 36770333
type: market_price_next_day_avg_price_alert
read: true
created_date: '2023-01-13T16:00:36.033'
header: Low market prices tomorrow
content: Tomorrow the average market prices are low, averaging at 0,62 kr/kWh 🙂. The price will be at
its lowest 23:00-00:00 at 0,40 kr/kWh.
- id: 36169901
type: market_price_next_day_avg_price_alert
read: true
created_date: '2022-12-31T16:01:46.243'
header: Low market prices tomorrow
content: Tomorrow the average market prices are low, averaging at 0,20 kr/kWh 🙂. The price will be at
its lowest 04:00-05:00 at 0,00 kr/kWh.
- id: 36101812
type: market_price_next_day_hour_price_alert
read: true
created_date: '2022-12-30T16:01:46.15'
header: Negative electricity prices tomorrow!
content: Between 02:00-08:00 tomorrow the market electricity price is below zero!
examples:
example-1:
value:
- id: 37117550
type: market_price_next_day_avg_price_alert
read: true
created_date: '2023-01-22T16:01:17.23'
header: Tomorrows market electricity prices are high!
content: Tomorrow the average market prices are high, averaging 1,66 kr/kWh. The prices peak 2,93 kr/kWh
at 09:00-10:00.
- id: 37054931
type: market_price_next_day_hour_price_alert
read: true
created_date: '2023-01-21T16:00:39.18'
header: Tomorrow the market prices are high!
content: Tomorrow you should avoid using excess electricity between 18:00-19:00 when the price is 2,19
kr/kWh.
- id: 36912603
type: market_price_next_day_avg_price_alert
read: true
created_date: '2023-01-18T16:01:25.223'
header: Tomorrows market electricity prices are high!
content: Tomorrow the average market prices are high, averaging 1,49 kr/kWh. The prices peak 2,01 kr/kWh
at 16:00-17:00.
- id: 36831730
type: market_price_next_day_avg_price_alert
read: true
created_date: '2023-01-14T16:01:32.003'
header: Low market prices tomorrow
content: Tomorrow the average market prices are low, averaging at 0,20 kr/kWh 🙂. The price will be at
its lowest 05:00-06:00 at 0,05 kr/kWh.
- id: 36770333
type: market_price_next_day_avg_price_alert
read: true
created_date: '2023-01-13T16:00:36.033'
header: Low market prices tomorrow
content: Tomorrow the average market prices are low, averaging at 0,62 kr/kWh 🙂. The price will be at
its lowest 23:00-00:00 at 0,40 kr/kWh.
- id: 36169901
type: market_price_next_day_avg_price_alert
read: true
created_date: '2022-12-31T16:01:46.243'
header: Low market prices tomorrow
content: Tomorrow the average market prices are low, averaging at 0,20 kr/kWh 🙂. The price will be at
its lowest 04:00-05:00 at 0,00 kr/kWh.
- id: 36101812
type: market_price_next_day_hour_price_alert
read: true
created_date: '2022-12-30T16:01:46.15'
header: Negative electricity prices tomorrow!
content: Between 02:00-08:00 tomorrow the market electricity price is below zero!
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
description: Could not find the location.
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
operationId: get-v3-locations-notification
description: Get notifications that has been generated for a location. This can be presented in a feed in an app, or
used for an admin to check which notifications that have been sent out.
parameters: []
/v3/locations/{locationId}/notifications/settings:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
get:
summary: Get Location Notifications Settings
tags:
- Locations
responses:
'200':
description: Location found
content:
application/json:
schema:
type: array
items:
type: object
properties:
type:
type: string
type_id:
type: integer
enabled:
type: boolean
mute_email:
type: boolean
mute_push:
type: boolean
mute_text:
type: boolean
x-examples:
example-1:
- type: meterreading_required
type_id: 80
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: bill_created
type_id: 82
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: daily_anomaly
type_id: 90
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: monthly_report_available
type_id: 94
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: budget
type_id: 95
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: custom
type_id: 104
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: market_price_next_day_avg_price_alert
type_id: 105
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: market_price_next_day_hour_price_alert
type_id: 106
enabled: true
mute_email: true
mute_push: false
mute_text: true
examples:
example-1:
value:
- type: meterreading_required
type_id: 80
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: bill_created
type_id: 82
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: daily_anomaly
type_id: 90
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: monthly_report_available
type_id: 94
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: budget
type_id: 95
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: custom
type_id: 104
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: market_price_next_day_avg_price_alert
type_id: 105
enabled: true
mute_email: true
mute_push: false
mute_text: true
- type: market_price_next_day_hour_price_alert
type_id: 106
enabled: true
mute_email: true
mute_push: false
mute_text: true
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
description: Could not find the location.
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
operationId: get-v3-locations-notification-settings
description: Get notifications settings for a location.
parameters: []
/v3/locations/{locationId}/notifications/settings/{notificationTypeId}:
put:
tags:
- Locations
summary: Update notification settings per location.
description: "Can be used to enable/disable the notification and configure delivery channels.\r\n \r\nAn\
\ important note is that the notification is sent via all configured channels.\r\nI.E. if none of the channels (email,\
\ text, push, webhook) are muted, ALL of them will be used in order to deliver the notification."
operationId: put-v3-locations-locationId-notifications-settings
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
- name: notificationTypeId
in: path
description: Notification id
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/LocationNotificationSettingsInput'
application/json:
schema:
$ref: '#/components/schemas/LocationNotificationSettingsInput'
text/json:
schema:
$ref: '#/components/schemas/LocationNotificationSettingsInput'
application/*+json:
schema:
$ref: '#/components/schemas/LocationNotificationSettingsInput'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationSettingsResponse'
examples:
Notification update successful:
value:
notification_name: daily_anomaly
notification_type_id: 90
send_event_notification: false
send_email: true
send_push: true
send_text: false
send_webhook: true
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Input not provided:
value:
code: invalid_parameter
transaction_id: 0HN1O72JU5P3C:00000001
description: '''input'' cannot be null'
Notification type id not provided:
value:
code: invalid_parameter
transaction_id: 0HN1O72JU5P3C:00000001
description: '''notificationTypeId'' not provided'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
code: LOCATION_NOT_FOUND
transaction_id: 0HN1O72JU5P3C:00000001
description: Location not found
Location owner not found:
value:
code: LOCATION_OWNER_NOT_FOUND
transaction_id: 0HN1O72JU5P3C:00000001
description: Location owner not found
Notification settings not found:
value:
code: NOTIFICATION_SETTINGS_NOT_FOUND
transaction_id: 0HN1O72JU5P3C:00000001
description: Notification settings not found
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
type: internal_error
category: internal_error
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong. Please try again later. If problem remains, please contact support.
description: Internal server error, please try again later. If problem remains, please contact support.
/v3/locations/{locationId}/profile/type:
get:
tags:
- Location Profile
summary: Get location profile type
description: Get the profile type for the location.
operationId: get-v3-location-profile-type
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LocationProfileType'
examples:
Residential type:
value:
type: residential
Business type:
value:
type: business
Type undefined:
value:
type: undefined
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find the location.
post:
tags:
- Location Profile
summary: Set location profile type
description: "Before setting the location profile type, ensure the client location profile configuration is set.\r\n\
- Business configuration is required to set business location types.\r\n- Residential configuration\
\ is required to set residential location types.\r\n \r\n
Note: Locations that previously\
\ used the Home profile feature are automatically assigned the Residential profile type.\r\nYou do not\
\ need to set the profile type for those locations. Only newly created locations that did not use the Home profile\
\ feature require a profile type to be set.\r\n"
operationId: post-v3-location-profile-type
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
requestBody:
description: Profile type
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/LocationProfileType'
examples:
Residential type:
value:
type: residential
Business type:
value:
type: business
application/json:
schema:
$ref: '#/components/schemas/LocationProfileType'
examples:
Residential type:
value:
type: residential
Business type:
value:
type: business
text/json:
schema:
$ref: '#/components/schemas/LocationProfileType'
examples:
Residential type:
value:
type: residential
Business type:
value:
type: business
application/*+json:
schema:
$ref: '#/components/schemas/LocationProfileType'
examples:
Residential type:
value:
type: residential
Business type:
value:
type: business
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LocationProfileType'
examples:
Residential type:
value:
type: residential
Business type:
value:
type: business
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Change not allowed:
value:
code: EXISTING_PROFILE_VALUES_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Can not change profile type for a configured profile with existing values
Profile settings not configured:
value:
code: PROFILE_CONFIGURATION_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Profile settings not configured
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find the location.
/v3/locations/{locationId}/profile:
get:
tags:
- Location Profile
summary: Get location profile
description: This includes all available profile options and any selected values for the location.
operationId: get-v3-location-profile
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LocationProfileSettings'
examples:
Location profile:
value:
settings:
- key: house_type
data_type: single_select
possible_values:
- value: apartment
developer_description: Apartment
- value: house_detached
developer_description: House - detached
- value: holiday_home
developer_description: Holiday home / summer house
- value: semi_detached
developer_description: House - semi detached
- value: townhouse
developer_description: House - townhouse
- value: other
developer_description: Other
dependent_properties: []
developer_description: Type of dwelling
tags:
- required_for_euc_to_work
- required_for_sh_to_work
group: ''
- key: living_area
data_type: number
limits:
min: 0
max: 800
step: 1
dependent_properties: []
developer_description: Size of heated living space in square meters
tags:
- required_for_sh_to_work
group: ''
- key: persons
data_type: number
limits:
min: 0
max: 10
step: 1
dependent_properties: []
developer_description: Number of people living in the home
group: ''
- key: heating_type_primary
data_type: single_select
possible_values:
- value: district_heating
developer_description: District heating
- value: radiators
developer_description: Electric radiators
- value: air_air_pump
developer_description: Air-air heat pump
- value: air_water_pump
developer_description: Air-water heat pump
- value: water_pan
developer_description: Electric boiler
- value: mountain_sea_earth
developer_description: Ground source heat pump
- value: exhaust_air_heat_pump
developer_description: Exhaust air heat pump
- value: other
developer_description: Other
dependent_properties:
- key: house_type
accepted_values:
- house_detached
- townhouse
- semi_detached
- holiday_home
- other
developer_description: Primary way of heating the location
tags:
- required_for_sh_to_work
group: ''
- key: heating_type_other
data_type: multiple_select
possible_values:
- value: district_heating
developer_description: District heating
- value: radiators
developer_description: Electric radiators
- value: air_air_pump
developer_description: Air-air heat pump
- value: air_water_pump
developer_description: Air-water heat pump
- value: water_pan
developer_description: Electric boiler
- value: mountain_sea_earth
developer_description: Ground source heat pump
- value: exhaust_air_heat_pump
developer_description: Exhaust air heat pump
- value: floor_heat
developer_description: Electric floor heat
- value: other
developer_description: Other
dependent_properties:
- key: house_type
accepted_values:
- house_detached
- townhouse
- semi_detached
- holiday_home
- other
developer_description: Non-primary ways of heating the location
group: ''
- key: hotwater_type
data_type: single_select
possible_values:
- value: hot_water_tank
developer_description: Storage water heater
- value: air_air_pump
developer_description: Air-air heat pump
- value: air_water_pump
developer_description: Air-water heat pump
- value: mountain_sea_earth
developer_description: Ground source heat pump
- value: exhaust_air_heat_pump
developer_description: Exhaust air heat pump
- value: district_heating
developer_description: District heating
- value: other
developer_description: Other
dependent_properties: []
developer_description: Primary way of heating water
group: ''
- key: gas_stoves
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of gas hobs
group: cooking
- key: gas_ovens
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of gas ovens
group: cooking
- key: electric_stoves
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of electric hobs
group: cooking
- key: electric_ovens
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of electric ovens
group: cooking
- key: microwaves
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of microwaves
group: cooking
- key: dishwashers
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of dishwashers
group: appliances
- key: washing_machines
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of washing machines
group: appliances
- key: dryers
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of electric dryers
group: appliances
- key: tv
data_type: number
limits:
min: 0
max: 10
step: 1
dependent_properties: []
developer_description: Number of TVs
group: appliances
- key: game_consoles
data_type: number
limits:
min: 0
max: 10
step: 1
dependent_properties: []
developer_description: Number of game consoles
group: ''
- key: laptops
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of laptops
group: ''
- key: stationary_computers
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of desktop/stationary computers
group: ''
- key: fridges
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of fridges
group: fridges_and_freezers
- key: freezers
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of freezers
group: fridges_and_freezers
- key: fridge_freezers
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of combined fridge-freezer units
group: fridges_and_freezers
- key: solar_installed
data_type: number
limits:
min: 0
max: 50
step: 1
dependent_properties: []
developer_description: Photovoltaic panels (kW)
group: ''
- key: electric_cars
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of EVs that are charged at the location
group: ''
- key: swimming_pool
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of swimming pools (where electricity is used in the heating of the water)
group: ''
groups:
- fridges_and_freezers
- appliances
- cooking
Location profile with selected values:
value:
settings:
- key: house_type
data_type: single_select
selected_values:
- id: 023fd646-b383-ee11-8925-000d3a2e6931
value: semi_detached
possible_values:
- value: apartment
developer_description: Apartment
- value: house_detached
developer_description: House - detached
- value: holiday_home
developer_description: Holiday home / summer house
- value: semi_detached
developer_description: House - semi detached
- value: townhouse
developer_description: House - townhouse
- value: other
developer_description: Other
dependent_properties: []
developer_description: Type of dwelling
tags:
- required_for_euc_to_work
- required_for_sh_to_work
group: ''
- key: living_area
data_type: number
selected_values:
- id: 053fd646-b383-ee11-8925-000d3a2e6931
value: 115
limits:
min: 0
max: 800
step: 1
dependent_properties: []
developer_description: Size of heated living space in square meters
tags:
- required_for_sh_to_work
group: ''
- key: persons
data_type: number
selected_values:
- id: a7606e31-454f-ef11-86c3-6045bdf530b7
value: 5
from: '2024-07-01T00:00:00'
- id: da188f27-454f-ef11-86c3-6045bdf530b7
value: 4
from: '2023-01-10T00:00:00'
- id: 103fd646-b383-ee11-8925-000d3a2e6931
value: 3
limits:
min: 0
max: 10
step: 1
dependent_properties: []
developer_description: Number of people living in the home
group: ''
- key: heating_type_primary
data_type: single_select
selected_values:
- id: 19ab5ad4-5f88-ee11-8925-000d3a2e6931
value: air_air_pump
possible_values:
- value: district_heating
developer_description: District heating
- value: radiators
developer_description: Electric radiators
- value: air_air_pump
developer_description: Air-air heat pump
- value: air_water_pump
developer_description: Air-water heat pump
- value: water_pan
developer_description: Electric boiler
- value: mountain_sea_earth
developer_description: Ground source heat pump
- value: exhaust_air_heat_pump
developer_description: Exhaust air heat pump
- value: other
developer_description: Other
dependent_properties:
- key: house_type
accepted_values:
- house_detached
- townhouse
- semi_detached
- holiday_home
- other
developer_description: Primary way of heating the location
tags:
- required_for_sh_to_work
group: ''
- key: heating_type_other
data_type: multiple_select
possible_values:
- value: district_heating
developer_description: District heating
- value: radiators
developer_description: Electric radiators
- value: air_air_pump
developer_description: Air-air heat pump
- value: air_water_pump
developer_description: Air-water heat pump
- value: water_pan
developer_description: Electric boiler
- value: mountain_sea_earth
developer_description: Ground source heat pump
- value: exhaust_air_heat_pump
developer_description: Exhaust air heat pump
- value: floor_heat
developer_description: Electric floor heat
- value: other
developer_description: Other
dependent_properties:
- key: house_type
accepted_values:
- house_detached
- townhouse
- semi_detached
- holiday_home
- other
developer_description: Non-primary ways of heating the location
group: ''
- key: hotwater_type
data_type: single_select
possible_values:
- value: hot_water_tank
developer_description: Storage water heater
- value: air_air_pump
developer_description: Air-air heat pump
- value: air_water_pump
developer_description: Air-water heat pump
- value: mountain_sea_earth
developer_description: Ground source heat pump
- value: exhaust_air_heat_pump
developer_description: Exhaust air heat pump
- value: district_heating
developer_description: District heating
- value: other
developer_description: Other
dependent_properties: []
developer_description: Primary way of heating water
group: ''
- key: gas_stoves
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of gas hobs
group: cooking
- key: gas_ovens
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of gas ovens
group: cooking
- key: electric_stoves
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of electric hobs
group: cooking
- key: electric_ovens
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of electric ovens
group: cooking
- key: microwaves
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of microwaves
group: cooking
- key: dishwashers
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of dishwashers
group: appliances
- key: washing_machines
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of washing machines
group: appliances
- key: dryers
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of electric dryers
group: appliances
- key: tv
data_type: number
limits:
min: 0
max: 10
step: 1
dependent_properties: []
developer_description: Number of TVs
group: ''
- key: game_consoles
data_type: number
limits:
min: 0
max: 10
step: 1
dependent_properties: []
developer_description: Number of game consoles
group: ''
- key: laptops
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of laptops
group: ''
- key: stationary_computers
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of desktop/stationary computers
group: ''
- key: fridges
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of fridges
group: fridges_and_freezers
- key: freezers
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of freezers
group: fridges_and_freezers
- key: fridge_freezers
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of combined fridge-freezer units
group: fridges_and_freezers
- key: solar_installed
data_type: number
limits:
min: 0
max: 50
step: 1
dependent_properties: []
developer_description: Photovoltaic panels (kW)
group: ''
- key: electric_cars
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of EVs that are charged at the location
group: ''
- key: swimming_pool
data_type: number
limits:
min: 0
max: 5
step: 1
dependent_properties: []
developer_description: Number of swimming pools (where electricity is used in the heating of the water)
group: ''
groups:
- cooking
- appliances
- fridges_and_freezers
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find the location.
Profile settings not configured:
value:
code: PROFILE_CONFIGURATION_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Profile settings not configured
post:
tags:
- Location Profile
summary: Add new location profile values
description: "Used in order to add new historic values to the location profile, specifying how and when it has changed.\r\
\n\r\nExisting values can be updated via [PATCH location profile's value](#tag/Location-Profile/operation/patch-v3-location-profile-value).\r\
\n\r\nIf a user's location profile genuinely changed, [POST Add new location profile values](#tag/Location-Profile/operation/set-v3-location-profile-values)\
\ should be used in order to make full use of the historic location profile feature.\r\n\r\nIt's technically possible\
\ to omit the historic location profile functionality, use [POST Add new location profile values](#tag/Location-Profile/operation/set-v3-location-profile-values)\
\ to create the property and [PATCH location profile's value](#tag/Location-Profile/operation/patch-v3-location-profile-value)\
\ to update it. But we strongly recommend making use of the historic location profile functionality.\r\n \
\ \r\nFor example:\r\nA user has entered that he has 2 electric boilers at his location when he actually meant 1.\
\ This can be corrected using [PATCH location profile's value](#tag/Location-Profile/operation/patch-v3-location-profile-value).\r\
\nHowever, in the scenario where the user has had a single boiler since 2022-01-01, and decided to purchase a 2nd\
\ boiler on 2024-01-01, [POST Add new location profile values](#tag/Location-Profile/operation/set-v3-location-profile-values)\
\ should be used to make use of the historic profile feature."
operationId: set-v3-location-profile-values
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
requestBody:
description: Values to add
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LocationProfileValueRequest'
examples:
Payload:
value:
- key: house_type
value: apartment
from: '2024-09-01T00:00:00'
- key: living_area
value: 450
from: '2024-09-01T00:00:00'
- key: heating_type_other
value:
- heat_pump
- wood_burning
from: '2024-01-01T00:00:00'
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LocationProfileValueResponse'
examples:
Location profile values result:
value:
- id: cde1e994-0b03-4a63-99ae-373becd4da3c
key: house_type
value: apartment
from: '2024-09-01T00:00:00'
- id: a9b70bd2-113b-4724-8076-5469da03eb15
key: living_area
value: 450
from: '2024-09-01T00:00:00'
Location profile value (no date):
value:
- id: 57209a2d-18e9-4e68-8889-59a7d874b497
key: house_type
value: apartment
- id: 237bcf08-7377-4b48-9106-ec061ea7ee60
key: heating_type_primary
value: district_heating
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Empty input provided:
value:
code: INVALID_INPUT
transaction_id: 0HN18NIB8K5RV:00000001
description: Empty input provided
Key was not provided:
value:
code: INVALID_INPUT
transaction_id: 0HN18NIB8K5RV:00000001
description: Key was not provided
Value was not provided:
value:
code: INVALID_INPUT
transaction_id: 0HN18NIB8K5RV:00000001
description: Value was not provided for Key 'heating_type'
Key mismatch:
value:
code: KEY_MISSING_FROM_CONFIGURATION
transaction_id: 0HN18NIB8K5RV:00000001
description: Key 'ice_makers' does not match any allowed settings
Key date value already exists:
value:
code: KEY_DATE_VALUE_ALREADY_EXISTS
transaction_id: 0HN18NIB8K5RV:00000001
description: Key 'heating_type' with From 'null' already exists for the location
Key date values must be unique:
value:
code: DUPLICATE_KEY_VALUE_PAIRS
transaction_id: 0HN18NIB8K5RV:00000001
description: 'Key date values must be unique for a single location. The following duplicates were found:
Key ''persons'' From ''2024-01-01'''
Unsupported type:
value:
code: INVALID_INPUT_VALUE_FORMAT
transaction_id: 0HN18NIB8K5RV:00000001
description: 'Unsupported type used for number: System.String'
Profile type not configured:
value:
code: PROFILE_TYPE_NOT_CONFIGURED
transaction_id: 0HN18NIB8K5RV:00000001
description: Profile type not configured
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find the location.
Profile settings not configured:
value:
code: PROFILE_CONFIGURATION_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Profile settings not configured
/v3/locations/{locationId}/profile/completion:
get:
tags:
- Location Profile
summary: Get location profile completion percentage
description: "Returns the percentage of settings which have a value set.\r\nIf 2 out of 20 total settings have a value\
\ set, the response is 10%, if 10 out of 20 settings are\r\nset, response is 50%, etc."
operationId: get-v3-location-profile-completion
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LocationProfileCompletionResponse'
examples:
Location profile 10% complete:
value:
completion_percentage: 10
Location profile 24% complete:
value:
completion_percentage: 24
Location profile 100% complete:
value:
completion_percentage: 100
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find the location.
Profile settings not configured:
value:
code: PROFILE_CONFIGURATION_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Profile settings not configured
/v3/locations/{locationId}/profile/{profileValueId}:
patch:
tags:
- Location Profile
summary: Patch location profile's value
description: "This endpoint can be used to update a specific location profile's value.\r\n \r\nWe strongly\
\ recommend using this endpoint only for correcting mistakes a user has made while entering his location profile and\
\ using the [POST Add new location profile values](#tag/Location-Profile/operation/set-v3-location-profile-values)\
\ endpoint in order to create historic change entries of the location profile.\r\n \r\nFor example:\r\n\
A user has entered that he has 2 electric boilers at his location when he actually meant 1. This can be corrected\
\ using [PATCH location profile's value](#tag/Location-Profile/operation/patch-v3-location-profile-value).\r\nIn the\
\ scenario where the user has had a single boiler since 2022-01-01, and decided to purchase a 2nd boiler on 2024-01-01,\
\ we recommend using [POST Add new location profile values](#tag/Location-Profile/operation/set-v3-location-profile-values)\
\ to make use of the historic location profile feature."
operationId: patch-v3-location-profile-value
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
- name: profileValueId
in: path
description: Profile value id
required: true
schema:
type: string
format: uuid
requestBody:
description: PATCH request model
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/PatchLocationProfileRequestModel'
examples:
Payload with string value:
value:
from: '2024-01-01T00:00:00'
value: apartment
Payload with number value:
value:
from: '2024-01-01T00:00:00'
value: 4
Payload with empty value:
value:
from: '2024-01-01T00:00:00'
Payload with empty from:
value:
value: apartment
Payload for multi-select properties:
value:
from: '2024-01-01T00:00:00'
value:
- heat_pump
- wood_burning
application/json:
schema:
$ref: '#/components/schemas/PatchLocationProfileRequestModel'
examples:
Payload with string value:
value:
from: '2024-01-01T00:00:00'
value: apartment
Payload with number value:
value:
from: '2024-01-01T00:00:00'
value: 4
Payload with empty value:
value:
from: '2024-01-01T00:00:00'
Payload with empty from:
value:
value: apartment
Payload for multi-select properties:
value:
from: '2024-01-01T00:00:00'
value:
- heat_pump
- wood_burning
text/json:
schema:
$ref: '#/components/schemas/PatchLocationProfileRequestModel'
examples:
Payload with string value:
value:
from: '2024-01-01T00:00:00'
value: apartment
Payload with number value:
value:
from: '2024-01-01T00:00:00'
value: 4
Payload with empty value:
value:
from: '2024-01-01T00:00:00'
Payload with empty from:
value:
value: apartment
Payload for multi-select properties:
value:
from: '2024-01-01T00:00:00'
value:
- heat_pump
- wood_burning
application/*+json:
schema:
$ref: '#/components/schemas/PatchLocationProfileRequestModel'
examples:
Payload with string value:
value:
from: '2024-01-01T00:00:00'
value: apartment
Payload with number value:
value:
from: '2024-01-01T00:00:00'
value: 4
Payload with empty value:
value:
from: '2024-01-01T00:00:00'
Payload with empty from:
value:
value: apartment
Payload for multi-select properties:
value:
from: '2024-01-01T00:00:00'
value:
- heat_pump
- wood_burning
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LocationProfileValueResponse'
examples:
Patch location profile value result:
value:
id: 1332d259-8aef-4566-b8b7-529f47d16ff1
key: house_type
value: apartment
from: '2024-09-01T00:00:00'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Profile value not found for location:
value:
code: PROFILE_VALUE_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Profile value not found for given location and id.
delete:
tags:
- Location Profile
summary: Delete location profile's value
description: Delete location profile's value by id.
operationId: delete-v3-location-profile-value
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
- name: profileValueId
in: path
description: Profile value id
required: true
schema:
type: string
format: uuid
responses:
'204':
description: No Content
content:
application/json:
schema:
type: string
examples:
Success:
value: ''
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Profile value not found for location:
value:
code: PROFILE_VALUE_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Profile value not found for given location and id.
/v3/locations/{locationId}/homeprofile:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
description: Eliq internal location id
get:
summary: Get location homeprofile
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Homeprofile'
examples:
Home profile:
value:
properties:
- key: house_type
data_type: single_select
is_required: true
possible_values:
- value: apartment
developer_description: Apartment
- value: house
developer_description: House
- value: semi_detached
developer_description: House - semi detached
- value: holiday_home
developer_description: Holiday home / summer house
- value: other
developer_description: Other
tags:
- required_for_euc_to_work
- required_for_sh_to_work
developer_description: Type of dwelling
- key: living_area
data_type: number
is_required: true
limits:
min: 0
max: 400
step: 1
tags:
- required_for_sh_to_work
developer_description: Size of heated living space in square meters
- key: persons
data_type: number
is_required: true
limits:
min: 0
max: 10
step: 1
tags: []
developer_description: Number of people living in the home
- key: heating_type_primary
data_type: single_select
is_required: true
possible_values:
- value: district_heating
developer_description: District heating
- value: radiators
developer_description: Electric radiators
- value: air_air_pump
developer_description: Air-air heat pump
- value: air_water_pump
developer_description: Air-water heat pump
- value: water_pan
developer_description: Storage water heater
- value: exhaust_air_heat_pump
developer_description: Exhaust air heat pump
- value: floor_heat
developer_description: Electric floor heat
- value: other
developer_description: Other
tags:
- required_for_sh_to_work
developer_description: Primary way of heating the location
- key: heating_type_other
data_type: multiple_select
is_required: false
possible_values:
- value: district_heating
developer_description: District heating
- value: radiators
developer_description: Electric radiators
- value: air_air_pump
developer_description: Air-air heat pump
- value: air_water_pump
developer_description: Air-water heat pump
- value: water_pan
developer_description: Storage water heater
- value: exhaust_air_heat_pump
developer_description: Exhaust air heat pump
- value: floor_heat
developer_description: Electric floor heat
- value: other
developer_description: Other
tags: []
developer_description: Non-primary ways of heating the location
- key: hotwater_type
data_type: single_select
is_required: false
possible_values:
- value: hot_water_tank
developer_description: Storage water heater
- value: air_water_pump
developer_description: Air-water heat pump
- value: exhaust_air_heat_pump
developer_description: Exhaust air heat pump
- value: district_heating
developer_description: District heating
- value: other
developer_description: Other
tags: []
developer_description: Primary way of heating water
cooking:
- key: gas_stoves
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of gas hobs
- key: gas_ovens
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of gas ovens
- key: electric_stoves
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of electric hobs
- key: electric_ovens
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of electric ovens
- key: microwaves
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of microwaves
appliances:
- key: dishwashers
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of dishwashers
- key: washing_machines
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of washing machines
- key: dryers
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of electric dryers
fridges_and_freezers:
- key: fridges
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of fridges
- key: freezers
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of freezers
- key: fridge_freezers
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of combined fridge-freezer units
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error not found:
value:
type: client_error
category: entity_not_found
description: Could not find location
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
operationId: get-v3-locations-locationId-homeprofile
description: "### Home profile endpoints are being DEPRECATED\n\nEliq is expanding it's suite of features to include\
\ business insights. In light of this, new Location Profile endpoints were introduced in order to deferentiate locations\
\ between residential and business locations.\n\nThe new Location profile endpoints should be used to manage home\
\ profile properties. Eliq will continue to support this endpoint and will communicate a date when this endpoint will\
\ no longer be supported once a date has been set.\n\nGet location home profile. The endpoint will return both meta\
\ data about the available home profile options that is available, and the selected properties for the specific location.\n\
\nA location home profile is used to populate information about the household, such as house type, heating type or\
\ number of people in the household. The available home profile options is dependent on the country of the location.\
\ There is also a possibility to modify the available home profile options. Please contact Eliq for more information.\
\ \n\nNOTE: In the 'properties' section, certain values, such as 'hotwater_type', represent different fuel options\
\ like electricity or gas for the hot water system. However, if you have a hot water system that operates without\
\ consuming energy, like wood burning, you can omit selecting any specific value for the 'hotwater_type' field."
tags:
- Home Profile
deprecated: true
patch:
summary: Update home profile
operationId: patch-v3-locations-locationId-homeprofile
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/HomeProfileOption'
examples:
Home profile:
value:
key: house_type
data_type: single_select
is_required: false
value: apartment
possible_values:
- value: house
developer_description: House
- value: apartment
developer_description: Apartment
tags:
- required_for_euc_to_work
- required_for_sh_to_work
developer_description: Type of dwelling
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error not found:
value:
type: client_error
category: entity_not_found
description: Could not find location
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchDocument'
examples:
Replace housetype, people, heating type:
value:
- op: replace
path: properties/house_type
value: apartment
- op: replace
path: properties/persons
value: 2
- op: replace
path: properties/heating_type_primary
value: radiators
description: ''
description: '### Home profile endpoints are being DEPRECATED
Eliq is expanding it''s suite of features to include business insights. In light of this, new Location Profile endpoints
were introduced in order to deferentiate locations between residential and business locations.
The new Location profile endpoints should be used to manage home profile properties. Eliq will continue to support
this endpoint and will communicate a date when this endpoint will no longer be supported once a date has been set.
Update the homeprofile.
Follows RFC 6902 with the small tweak that we only allow the replace operation. However, the replace operation can
be used to add and remove as well.
See the example for GetLocationHomeprofile for specifications of what values can be set for each property.
NOTE: In the ''properties'' section, certain values, such as ''hotwater_type'', represent different fuel options like
electricity or gas for the hot water system. However, if you have a hot water system that operates without consuming
energy, like wood burning, you can omit selecting any specific value for the ''hotwater_type'' field.'
tags:
- Home Profile
deprecated: true
/v3/locations/{locationId}/homeprofile/completion:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
description: Eliq internal location id
get:
summary: Get location homeprofile completion
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
home_profile_completion:
type: integer
x-examples:
example-1:
home_profile_completion: 65
examples:
home_profile_completion:
value:
home_profile_completion: 65
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error not found:
value:
type: client_error
category: entity_not_found
description: Could not find location
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
operationId: get-v3-locations-locationId-homeprofile-completion
description: '### Home profile endpoints are being DEPRECATED
Eliq is expanding it''s suite of features to include business insights. In light of this, new Location Profile endpoints
were introduced in order to deferentiate locations between residential and business locations.
The new Location profile endpoints should be used to manage home profile properties. Eliq will continue to support
this endpoint and will communicate a date when this endpoint will no longer be supported once a date has been set.
This endpoint will return how many percentages of the home profile that is filled out. 100% means that all parameters
are set.'
tags:
- Home Profile
deprecated: true
/v3/locations/{locationId}/marketprice/prices:
get:
tags:
- Market Price
summary: Get location market prices
description: Get market prices for location in desired resolution between two specified timestamps. On daily and monthly
resolution, the average price is calculated for the given day/month using either hourly or 15min prices, depending
on which prices are available.
operationId: get-v3-locations-locationId-marketprice-prices
parameters:
- name: locationId
in: path
description: Location ID
required: true
schema:
type: integer
format: int32
- name: from
in: query
description: From date inclusive
schema:
type: string
- name: to
in: query
description: To date exclusive
schema:
type: string
- name: resolution
in: query
description: 'Data granularity resolution with the following valid values: ''15min'', ''30min'', ''hour'', ''day'',
''month'''
schema:
enum:
- 15min
- 30min
- hour
- day
- month
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/MarketPriceResponseDto'
examples:
Successful day result:
value:
resolution: day
currency: SEK
from: '2022-09-01T00:00:00'
to: '2022-09-02T00:00:00'
values:
- period_start: '2022-09-02T00:00:00'
price_kwh: 1.406281
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
From date missing:
value:
code: MISSING_FROM
transaction_id: 0HN18NIB8K5RV:00000001
description: From date missing
To date missing:
value:
code: MISSING_TO
transaction_id: 0HN18NIB8K5RV:00000001
description: To date missing
To date must be after from date:
value:
code: TO_MUST_BE_AFTER_FROM
transaction_id: 0HN18NIB8K5RV:00000001
description: To date must be after from date
Resolution missing:
value:
code: MISSING_RESOLUTION
transaction_id: 0HN18NIB8K5RV:00000001
description: Resolution missing
Resolution provided invalid:
value:
code: INVALID_RESOLUTION
transaction_id: 0HN18NIB8K5RV:00000001
description: Resolution provided invalid
Period too long:
value:
code: PERIOD_TOO_LONG
transaction_id: 0HN18NIB8K5RV:00000001
description: Period requested too long for given resolution
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
code: LOCATION_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Location with given id not found
Location missing spot price region:
value:
code: LOCATION_MISSING_SPOT_PRICE_REGION
transaction_id: 0HN18NIB8K5RV:00000001
description: Location missing spot price region
Spot price region not found:
value:
code: SPOT_PRICE_REGION_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Spot price region not found
/v3/locations/{locationId}/marketprice/price-summary:
get:
tags:
- Market Price
summary: Get location market price summary
description: "Get market price summary in daily or monthly resolution. The summary includes: average market price, the\
\ lowest and highest market price for the period and price levels. The price levels indicates if the average market\
\ price was high or low for the period compared to a reference period.\r\n\r\nIn daily resolution the lowest and highest\
\ market price are hourly and the price levels reference period is default 30 days.\r\n\r\nIn monthly resolution the\
\ lowest and highest market price are daily average and the price levels reference period is default 12 months.\r\n\
\r\nNote! In order for market prices to be available, the property spot_price_region_id must be set on the location\
\ via the Data Management API."
operationId: get-v3-locations-locationId-marketprice-price-summary
parameters:
- name: locationId
in: path
description: Location Id
required: true
schema:
type: integer
format: int32
- name: from
in: query
description: From date
required: true
schema:
type: string
- name: to
in: query
description: To date exclusive
required: true
schema:
type: string
- name: resolution
in: query
description: 'Data granularity resolution of periods to summarise with the following valid values: ''day'', ''month'''
required: true
schema:
enum:
- day
- month
type: string
- name: subResolution
in: query
description: Optional parameter which specifies the sub-resolution of the summary data. For 'day' resolution, valid
values are 'hour' and '15min'. For 'month' resolution, the only valid value is 'day'. If parameter isn't provided,
it defaults to 'hour' for 'day' resolution and 'day' for 'month' resolution.
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/MarketPriceSummaryDto'
examples:
Daily market price summary response with hour subResolution.:
value:
resolution: day
currency: NOK
from: '2022-09-01T00:00:00'
to: '2022-09-02T00:00:00'
values:
- period_start: '2022-09-01T00:00:00'
avg_price_kwh: 5.661202
price_level: high
lowest_price_kwh:
period_start: '2022-09-01T03:00:00'
price_kwh: 4.90578
highest_price_kwh:
period_start: '2022-09-01T19:00:00'
price_kwh: 6.73716
values:
- period_start: '2022-09-01T00:00:00'
price_kwh: 5.01563
- period_start: '2022-09-01T01:00:00'
price_kwh: 4.95013
- period_start: '2022-09-01T02:00:00'
price_kwh: 4.94994
- period_start: '2022-09-01T03:00:00'
price_kwh: 4.90578
- period_start: '2022-09-01T04:00:00'
price_kwh: 5.01007
- period_start: '2022-09-01T05:00:00'
price_kwh: 5.68437
- period_start: '2022-09-01T06:00:00'
price_kwh: 5.90448
- period_start: '2022-09-01T07:00:00'
price_kwh: 6.43509
- period_start: '2022-09-01T08:00:00'
price_kwh: 6.39896
- period_start: '2022-09-01T09:00:00'
price_kwh: 5.95261
- period_start: '2022-09-01T10:00:00'
price_kwh: 5.77011
- period_start: '2022-09-01T11:00:00'
price_kwh: 5.34598
- period_start: '2022-09-01T12:00:00'
price_kwh: 5.0719
- period_start: '2022-09-01T13:00:00'
price_kwh: 5.03399
- period_start: '2022-09-01T14:00:00'
price_kwh: 5.23563
- period_start: '2022-09-01T15:00:00'
price_kwh: 5.52649
- period_start: '2022-09-01T16:00:00'
price_kwh: 5.75612
- period_start: '2022-09-01T17:00:00'
price_kwh: 6.15177
- period_start: '2022-09-01T18:00:00'
price_kwh: 6.498
- period_start: '2022-09-01T19:00:00'
price_kwh: 6.73716
- period_start: '2022-09-01T20:00:00'
price_kwh: 6.58076
- period_start: '2022-09-01T21:00:00'
price_kwh: 6.27571
- period_start: '2022-09-01T22:00:00'
price_kwh: 5.60697
- period_start: '2022-09-01T23:00:00'
price_kwh: 5.0712
Daily market price summary response with 15min subResolution.:
value:
resolution: day
currency: NOK
from: '2022-09-01T00:00:00'
to: '2022-09-02T00:00:00'
values:
- period_start: '2022-09-01T00:00:00'
avg_price_kwh: 5.661202
price_level: high
lowest_price_kwh:
period_start: '2022-09-01T00:45:00'
price_kwh: 4.90578
highest_price_kwh:
period_start: '2022-09-01T04:45:00'
price_kwh: 6.73716
values:
- period_start: '2022-09-01T00:00:00'
price_kwh: 5.01563
- period_start: '2022-09-01T00:15:00'
price_kwh: 4.95013
- period_start: '2022-09-01T00:30:00'
price_kwh: 4.94994
- period_start: '2022-09-01T00:45:00'
price_kwh: 4.90578
- period_start: '2022-09-01T01:00:00'
price_kwh: 5.01007
- period_start: '2022-09-01T01:15:00'
price_kwh: 5.68437
- period_start: '2022-09-01T01:30:00'
price_kwh: 5.90448
- period_start: '2022-09-01T01:45:00'
price_kwh: 6.43509
- period_start: '2022-09-01T02:00:00'
price_kwh: 6.39896
- period_start: '2022-09-01T02:15:00'
price_kwh: 5.95261
- period_start: '2022-09-01T02:30:00'
price_kwh: 5.77011
- period_start: '2022-09-01T02:45:00'
price_kwh: 5.34598
- period_start: '2022-09-01T03:00:00'
price_kwh: 5.0719
- period_start: '2022-09-01T03:15:00'
price_kwh: 5.03399
- period_start: '2022-09-01T03:30:00'
price_kwh: 5.23563
- period_start: '2022-09-01T03:45:00'
price_kwh: 5.52649
- period_start: '2022-09-01T04:00:00'
price_kwh: 5.75612
- period_start: '2022-09-01T04:15:00'
price_kwh: 6.15177
- period_start: '2022-09-01T04:30:00'
price_kwh: 6.498
- period_start: '2022-09-01T04:45:00'
price_kwh: 6.73716
- period_start: '2022-09-01T05:00:00'
price_kwh: 6.58076
- period_start: '2022-09-01T05:15:00'
price_kwh: 6.27571
- period_start: '2022-09-01T05:30:00'
price_kwh: 5.60697
- period_start: '2022-09-01T05:45:00'
price_kwh: 5.0712
- period_start: '2022-09-01T06:00:00'
price_kwh: 5.0712
- period_start: '2022-09-01T06:15:00'
price_kwh: 4.95013
- period_start: '2022-09-01T06:30:00'
price_kwh: 4.94994
- period_start: '2022-09-01T06:45:00'
price_kwh: 4.08
- period_start: '2022-09-01T07:00:00'
price_kwh: 5.01007
- period_start: '2022-09-01T07:15:00'
price_kwh: 5.68437
- period_start: '2022-09-01T07:30:00'
price_kwh: 5.90448
- period_start: '2022-09-01T07:45:00'
price_kwh: 6.43509
- period_start: '2022-09-01T08:00:00'
price_kwh: 6.39896
- period_start: '2022-09-01T08:15:00'
price_kwh: 5.95261
- period_start: '2022-09-01T08:30:00'
price_kwh: 5.77011
- period_start: '2022-09-01T08:45:00'
price_kwh: 5.34598
- period_start: '2022-09-01T09:00:00'
price_kwh: 5.0719
- period_start: '2022-09-01T09:15:00'
price_kwh: 5.03399
- period_start: '2022-09-01T09:30:00'
price_kwh: 5.23563
- period_start: '2022-09-01T09:45:00'
price_kwh: 5.52649
- period_start: '2022-09-01T10:00:00'
price_kwh: 5.75612
- period_start: '2022-09-01T10:15:00'
price_kwh: 6.15177
- period_start: '2022-09-01T10:30:00'
price_kwh: 6.498
- period_start: '2022-09-01T10:45:00'
price_kwh: 6
- period_start: '2022-09-01T11:00:00'
price_kwh: 6.58076
- period_start: '2022-09-01T11:15:00'
price_kwh: 6.27571
- period_start: '2022-09-01T11:30:00'
price_kwh: 5.60697
- period_start: '2022-09-01T11:45:00'
price_kwh: 5.0712
- period_start: '2022-09-01T12:00:00'
price_kwh: 5.0712
- period_start: '2022-09-01T12:15:00'
price_kwh: 4.95013
- period_start: '2022-09-01T12:30:00'
price_kwh: 4.94994
- period_start: '2022-09-01T12:45:00'
price_kwh: 4
- period_start: '2022-09-01T13:00:00'
price_kwh: 5.01007
- period_start: '2022-09-01T13:15:00'
price_kwh: 5.68437
- period_start: '2022-09-01T13:30:00'
price_kwh: 5.90448
- period_start: '2022-09-01T13:45:00'
price_kwh: 6.43509
- period_start: '2022-09-01T14:00:00'
price_kwh: 6.39896
- period_start: '2022-09-01T14:15:00'
price_kwh: 5.95261
- period_start: '2022-09-01T14:30:00'
price_kwh: 5.77011
- period_start: '2022-09-01T14:45:00'
price_kwh: 5.34598
- period_start: '2022-09-01T15:00:00'
price_kwh: 5.0719
- period_start: '2022-09-01T15:15:00'
price_kwh: 5.03399
- period_start: '2022-09-01T15:30:00'
price_kwh: 5.23563
- period_start: '2022-09-01T15:45:00'
price_kwh: 5.52649
- period_start: '2022-09-01T16:00:00'
price_kwh: 5.75612
- period_start: '2022-09-01T16:15:00'
price_kwh: 6.15177
- period_start: '2022-09-01T16:30:00'
price_kwh: 6.498
- period_start: '2022-09-01T16:45:00'
price_kwh: 6
- period_start: '2022-09-01T17:00:00'
price_kwh: 6.58076
- period_start: '2022-09-01T17:15:00'
price_kwh: 6.27571
- period_start: '2022-09-01T17:30:00'
price_kwh: 5.60697
- period_start: '2022-09-01T17:45:00'
price_kwh: 5.0712
- period_start: '2022-09-01T18:00:00'
price_kwh: 5.0712
- period_start: '2022-09-01T18:15:00'
price_kwh: 4.95013
- period_start: '2022-09-01T18:30:00'
price_kwh: 4.94994
- period_start: '2022-09-01T18:45:00'
price_kwh: 4
- period_start: '2022-09-01T19:00:00'
price_kwh: 5.01007
- period_start: '2022-09-01T19:15:00'
price_kwh: 5.68437
- period_start: '2022-09-01T19:30:00'
price_kwh: 5.90448
- period_start: '2022-09-01T19:45:00'
price_kwh: 6.43509
- period_start: '2022-09-01T20:00:00'
price_kwh: 6.39896
- period_start: '2022-09-01T20:15:00'
price_kwh: 5.95261
- period_start: '2022-09-01T20:30:00'
price_kwh: 5.77011
- period_start: '2022-09-01T20:45:00'
price_kwh: 5.34598
- period_start: '2022-09-01T21:00:00'
price_kwh: 5.0719
- period_start: '2022-09-01T21:15:00'
price_kwh: 5.03399
- period_start: '2022-09-01T21:30:00'
price_kwh: 5.23563
- period_start: '2022-09-01T21:45:00'
price_kwh: 5.52649
- period_start: '2022-09-01T22:00:00'
price_kwh: 5.75612
- period_start: '2022-09-01T22:15:00'
price_kwh: 6.15177
- period_start: '2022-09-01T22:30:00'
price_kwh: 6.498
- period_start: '2022-09-01T22:45:00'
price_kwh: 6
- period_start: '2022-09-01T23:00:00'
price_kwh: 6.58076
- period_start: '2022-09-01T23:15:00'
price_kwh: 6.27571
- period_start: '2022-09-01T23:30:00'
price_kwh: 5.60697
- period_start: '2022-09-01T23:45:00'
price_kwh: 5.0712
Monthly market price summary response:
value:
resolution: month
currency: NOK
from: '2022-09-01T00:00:00'
to: '2022-10-01T00:00:00'
values:
- period_start: '2022-09-01T00:00:00'
avg_price_kwh: 5.661202
price_level: high
lowest_price_kwh:
period_start: '2022-09-04T00:00:00'
price_kwh: 4.90578
highest_price_kwh:
period_start: '2022-09-20T00:00:00'
price_kwh: 6.73716
values:
- period_start: '2022-09-01T00:00:00'
price_kwh: 5.01563
- period_start: '2022-09-02T00:00:00'
price_kwh: 4.95013
- period_start: '2022-09-03T00:00:00'
price_kwh: 4.94994
- period_start: '2022-09-04T00:00:00'
price_kwh: 4.90578
- period_start: '2022-09-05T00:00:00'
price_kwh: 5.01007
- period_start: '2022-09-06T00:00:00'
price_kwh: 5.68437
- period_start: '2022-09-07T00:00:00'
price_kwh: 5.90448
- period_start: '2022-09-08T00:00:00'
price_kwh: 6.43509
- period_start: '2022-09-09T00:00:00'
price_kwh: 6.39896
- period_start: '2022-09-10T00:00:00'
price_kwh: 5.95261
- period_start: '2022-09-11T00:00:00'
price_kwh: 5.77011
- period_start: '2022-09-12T00:00:00'
price_kwh: 5.34598
- period_start: '2022-09-13T00:00:00'
price_kwh: 5.0719
- period_start: '2022-09-14T00:00:00'
price_kwh: 5.03399
- period_start: '2022-09-15T00:00:00'
price_kwh: 5.23563
- period_start: '2022-09-16T00:00:00'
price_kwh: 5.52649
- period_start: '2022-09-17T00:00:00'
price_kwh: 5.75612
- period_start: '2022-09-18T00:00:00'
price_kwh: 6.15177
- period_start: '2022-09-19T00:00:00'
price_kwh: 6.498
- period_start: '2022-09-20T00:00:00'
price_kwh: 6.73716
- period_start: '2022-09-21T00:00:00'
price_kwh: 6.58076
- period_start: '2022-09-22T00:00:00'
price_kwh: 6.27571
- period_start: '2022-09-23T00:00:00'
price_kwh: 5.60697
- period_start: '2022-09-24T00:00:00'
price_kwh: 5.0712
- period_start: '2022-09-25T00:00:00'
price_kwh: 5.0712
- period_start: '2022-09-26T00:00:00'
price_kwh: 5.0712
- period_start: '2022-09-27T00:00:00'
price_kwh: 5.0712
- period_start: '2022-09-28T00:00:00'
price_kwh: 5.0712
- period_start: '2022-09-29T00:00:00'
price_kwh: 5.0712
- period_start: '2022-09-30T00:00:00'
price_kwh: 5.0712
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
From date missing:
value:
code: MISSING_FROM
transaction_id: 0HN18NIB8K5RV:00000001
description: From date missing
To date missing:
value:
code: MISSING_TO
transaction_id: 0HN18NIB8K5RV:00000001
description: To date missing
To date must be after from date:
value:
code: TO_MUST_BE_AFTER_FROM
transaction_id: 0HN18NIB8K5RV:00000001
description: To date must be after from date
Resolution missing:
value:
code: MISSING_RESOLUTION
transaction_id: 0HN18NIB8K5RV:00000001
description: Resolution missing
Resolution provided invalid:
value:
code: INVALID_RESOLUTION
transaction_id: 0HN18NIB8K5RV:00000001
description: Resolution provided invalid
Period too long:
value:
code: PERIOD_TOO_LONG
transaction_id: 0HN18NIB8K5RV:00000001
description: Period requested too long for given resolution
Invalid sub-resolution for day resolution:
value:
code: INVALID_RESOLUTION_PROVIDED
transaction_id: 0HN18NIB8K5RV:00000001
description: Invalid sub-resolution provided for day resolution
Invalid sub-resolution for month resolution:
value:
code: INVALID_RESOLUTION_PROVIDED
transaction_id: 0HN18NIB8K5RV:00000001
description: Invalid sub-resolution provided for month resolution
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
code: LOCATION_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Location with given id not found
Location missing spot price region:
value:
code: LOCATION_MISSING_SPOT_PRICE_REGION
transaction_id: 0HN18NIB8K5RV:00000001
description: Location missing spot price region
Spot price region not found:
value:
code: SPOT_PRICE_REGION_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Spot price region not found
/v3/locations/{locationId}/breakdown:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
description: Location identifier
get:
summary: Get location energy usage breakdown
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ResultWrapper'
examples:
Breakdown:
value:
result:
accuracy: MEDIUM
total_value: 100450
from: '2019-10-01T00:00:00'
to: '2019-11-01T00:00:00'
unit: energy
breakdown:
- category: cooking
value: 25047
- category: fridge_freezer
value: 35623
- category: washing
value: 18188
- category: heating
value: 4223
- category: always_on
value: 6365
- category: lightning
value: 11000
result_status:
code: ok
action: null
'400':
description: 'Bad Request
Possible errors
| *type* | *category* | *description* |
| --- | --- | --- |
| client_error | invalid_parameter | Timespan too large, one month is maximum allowed |
| client_error | invalid_parameter | Request input data is invalid |
| client_error | invalid_parameter | CUSTOM_PERIOD_MUST_BE_AT_LEAST_28_DAYS |'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error example:
value:
type: client_error
category: invalid_parameter
description: Timespan too large, one month is maximum allowed
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
'501':
description: 'Not Implemented
Possible errors
| *type* | *category* | *description* |
| --- | --- | --- |
| internal_error | breakdown_error | Breakdown for current month is not supported |
| internal_error | breakdown_error | House type required for breakdown |
| internal_error | breakdown_error | Not enough data points |
| internal_error | breakdown_error | Solar panels are not supported in breakdown |
| internal_error | breakdown_error | House type required for breakdown |
| internal_error | breakdown_error | DAILY_RESOLUTION_OR_BETTER_REQUIRED_FOR_CUSTOM_PERIOD |'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error example:
value:
type: internal_error
category: breakdown_error
description: Not enough data points
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
operationId: get-v3-locations-locationId-breakdown
description: "### This Endpoint is deprecated DEPRECATED\n\n“The new EUC endpoint \"Get location energy usage categories\
\ (EUC)\" should be used to get Energy Usage Categories instead. Eliq will continue to support this endpoint and will\
\ communicate a date when this endpoint will no longer be supported once a date has been set.”\n\nGet energy usage\
\ breakdown for a location.\n\nEnergy usage is analyzed and broken down into a list of different usage categories.\
\ Energy Usage Categories helps homeowners to better understand their energy usage and learn what appliances consume\
\ the most energy.\n\nThe endpoint returns 400 errors when there is an obvious implementation mistake and 501 errors\
\ when the error is caused by missing data. So please note that 501 errors are expected from this endpoint and this\
\ needs to be handled on the client side. All possible errors are listed below.\n\n`NOTE!` For cost to be available\
\ as a unit type, the location prices must be set in our database. If no location prices are available there will\
\ be an error response.\n\n`NOTE!` As default the from and to date are always rounded down to the nearest start of\
\ the month and returns full months. Max one month can be return in each call. However for locations that have daily\
\ data it is also possible to request EUC between two dates. We support a range between 28 - 31 days. Please set the\
\ custom_period to true to make this call.\n\n### Data requirements \n**Required data**\n\n* Monthly data: Minimum\
\ 1 month\n* Geo location: Address information\n* Home profile: Minimum house type\n\n**Optional (improved accuracy)**\n\
\n* Hourly data: Minimum 30 days of hourly´or sub-hourly data\n\n### Possible breakdown categories electricity\n\n\
| *Field* | *Description* |\n| --- | --- |\n| heating | Electricity usage used for space heating |\n| washing | Electricity\
\ usage used for laundry |\n| water_heating | Electricity usage used for water heating |\n| lightning | Electricity\
\ usage used for lighting. OBS! Please note that the key is misnamed to ligthning and not lighting :) |\n| consumer_electronics\
\ | Electricity usage used for home electronics |\n| cooking | Electricity usage used for cooking |\n| always_on |\
\ Electricity usage used for always on appliances |\n| fridge_freezer | Electricity usage used by fridge and freezers\
\ |\n| cooling | Electricity usage used to cool the home |\n| electric_vehicle | Electricity usage used for charging\
\ of cars |\n| other | Electricity usage used by appliances not matching other categories |\n| standing_charge | If\
\ unit is set to \"cost\", the cost for the standing charge is presented in a separate category |\n\n### Possible\
\ breakdown categories gas\n\n| *Field* | *Description* |\n| --- | --- |\n| heating | Gas usage used for heating |\n\
| water_heating | Gas usage used for heating water |\n| cooking | Gas usage usage used for cooking |\n| standing_charge\
\ | If unit is set to \"cost\", the cost for the standing charge is presented in a separate category |\n"
parameters:
- schema:
type: string
example: energy
enum:
- energy
- cost
default: energy
in: query
name: unit
description: Unit to receive result in.
allowEmptyValue: true
- schema:
type: string
default: elec
enum:
- elec
- gas
example: elec
in: query
name: fuel
description: Fuel to get breakdown for. Currently 'elec' and 'gas' is supported.
- schema:
type: string
example: '2021-01-01T00:00:00'
in: query
name: from
description: 'From which date to retrieve breakdown '
- schema:
type: string
example: '2021-02-01'
in: query
name: to
description: To which date to retrieve breakdown for (exclusive)
- schema:
type: string
default: 'false'
enum:
- 'false'
- 'true'
example: 'false'
in: query
name: custom_period
description: Set to true to be able to get a custom range between two dates.
tags:
- Breakdown
deprecated: true
/v3/locations/{locationId}/euc:
get:
tags:
- Energy Usage Categories
summary: Get energy usage categories (EUC) for a location
description: "Get location energy usage by category.\r\n\r\nRequested EUC period must be in a range of 28 - 366 days\
\ (minimum 1 month, maximum 1 year).\r\n\r\nFor cost to be available as a unit type, the location must have device\
\ price formulas set in our system.\r\n\r\nUnit of m3 is only available with fuel of gas. Conversion between m3 and\
\ Wh values relies on a calorific rate being configured for a client. Please contact Eliq for more details about having\
\ this configuration in place.\r\n\r\n### Data requirements\r\nEUC requires some prerequisites in order to work.\r\
\n#### Electricity\r\n* Monthly energy data: Minimum 30 days of data\r\n - (Optional) Hourly energy data: Minimum\
\ 30 days of hourly or sub-hourly data\r\n* Geo location: Address information\r\n* Location profile: At least house\
\ type for residential profile or business type for business profile.\r\n\r\n#### Gas\r\n* Monthly energy data: Minimum\
\ one month of data\r\n* Geo location: Address information\r\n* Location profile: At least house type for residential\
\ profile or business type for business profile.\r\n\r\n### Electricity categories\r\n| *Field* | *Description* |\r\
\n| --- | --- |\r\n| heating | Electricity usage used for space heating |\r\n| washing | Electricity usage used for\
\ laundry |\r\n| water_heating | Electricity usage used for water heating |\r\n| lighting | Electricity usage used\
\ for lighting. |\r\n| consumer_electronics | Electricity usage used for home electronics |\r\n| cooking | Electricity\
\ usage used for cooking |\r\n| always_on | Electricity usage used for always on appliances |\r\n| fridge_freezer\
\ | Electricity usage used by fridge and freezers |\r\n| cooling | Electricity usage used to cool the home |\r\n|\
\ electric_vehicle | Electricity usage used for charging of cars |\r\n| sauna | Electricity usage used for heating\
\ your sauna |\r\n| other | Electricity usage used by appliances not matching other categories |\r\n\r\n### Gas categories\r\
\n| *Field* | *Description* |\r\n| --- | --- |\r\n| heating | Gas usage used for heating |\r\n| water_heating | Gas\
\ usage used for heating water |\r\n| cooking | Gas usage usage used for cooking |"
operationId: get-v3-locations-locationId-euc
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
- name: from
in: query
description: From date
required: true
schema:
type: string
format: date-time
- name: to
in: query
description: To date, exclusive
required: true
schema:
type: string
format: date-time
- name: unit
in: query
description: 'Unit. Valid values: ''cost'', ''energy'', ''m3''.'
schema:
type: string
default: energy
- name: fuel
in: query
description: 'Fuel. Valid values: ''elec'', ''gas'', ''district_heating''.'
schema:
type: string
default: elec
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/EUC'
examples:
EUC data monthly:
value:
accuracy: medium
total_value: 12881
from: '2024-02-01T00:00:00'
to: '2024-03-01T00:00:00'
unit: energy
breakdown:
- category: lighting
value: 1350
percentage: 10.48
- category: fridge_freezer
value: 2203
percentage: 17.1
- category: washing
value: 672
percentage: 5.22
- category: heating
value: 8656
percentage: 67.2
EUC data yearly:
value:
accuracy: medium
total_value: 250340
from: '2024-01-01T00:00:00'
to: '2025-01-01T00:00:00'
unit: energy
breakdown:
- category: lighting
value: 135021
percentage: 10.48
- category: fridge_freezer
value: 22031
percentage: 17.1
- category: washing
value: 6722
percentage: 5.22
- category: heating
value: 86566
percentage: 67.2
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Not supported or missing profile type:
value:
code: NOT_SUPPORTED_PROFILE_TYPE
transaction_id: 0HN1O72JU5P3C:00000001
description: Locations profile type is not supported or missing for EUC.
Not enough home profile options:
value:
code: NOT_ENOUGH_HOME_PROFILE_OPTIONS_SET
transaction_id: 0HN1O72JU5P3C:00000001
description: Not enough home profile options set.
Not enough business profile options:
value:
code: NOT_ENOUGH_BUSINESS_PROFILE_OPTIONS_SET
transaction_id: 0HN1O72JU5P3C:00000001
description: All required business profile options must be set.
House type required:
value:
code: HOUSE_TYPE_REQUIRED_FOR_EUC
transaction_id: 0HN1O72JU5P3C:00000001
description: House type required for EUC.
Business type required:
value:
code: BUSINESS_TYPE_REQUIRED_FOR_EUC
transaction_id: 0HN1O72JU5P3C:00000001
description: Business type required for EUC.
Euc not supported for business type:
value:
code: EUC_NOT_SUPPORTED_FOR_BUSINESS_TYPE
transaction_id: 0HN1O72JU5P3C:00000001
description: EUC is not supported for the selected business type.
Not enough data points:
value:
code: NOT_ENOUGH_DATA_POINTS
transaction_id: 0HN1O72JU5P3C:00000001
description: Not enough data point for the requested period.
No consumption for solar:
value:
code: NO_CONSUMPTION_DATA_FOR_SOLAR_LOCATION
transaction_id: 0HN1O72JU5P3C:00000001
description: Solar panels are selected for this location, but we do not have consumption data in our platform.
At least daily resolution required:
value:
code: DAILY_RESOLUTION_OR_BETTER_REQUIRED_FOR_CUSTOM_PERIOD
transaction_id: 0HN1O72JU5P3C:00000001
description: Daily or hourly resolution required for the requested period.
From later than today:
value:
code: FROM_DATE_CANNOT_BE_LATER_THAN_TODAY_DATE
transaction_id: 0HN1O72JU5P3C:00000001
description: From date cannot be larger than todays date.
Timespan too large:
value:
code: TIMESPAN_TOO_LARGE
transaction_id: 0HN1O72JU5P3C:00000001
description: Timespan too large, one year or 366 days is the maximum allowed.
Timespan too small:
value:
code: TIMESPAN_TOO_SMALL
transaction_id: 0HN1O72JU5P3C:00000001
description: Timespan must be at least 28 days.
Current month not supported:
value:
code: EUC_FOR_CURRENT_MONTH_IS_NOT_SUPPORTED
transaction_id: 0HN1O72JU5P3C:00000001
description: EUC for current month is not supported.
Period spanning several months have mid-month from/to dates.:
value:
code: MULTI_MONTH_DATES_START_MID_MONTH
transaction_id: 0HN1O72JU5P3C:00000001
description: When requesting EUC for a period larger than 1 month, or 31 days, from and to dates must
start on the 1st day of the month.
Monetary value not calculated:
value:
code: COST_NOT_FOUND_FOR_ALL_DATA_POINTS
transaction_id: 0HN1O72JU5P3C:00000001
description: Monetary value could not be calculated
From parameter missing:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Parameter 'from' missing
To parameter missing:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Parameter 'to' missing
Date range invalid:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Parameter 'from' cannot be larger than 'to'
From parameter timezone unsupported:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Parameter 'from' should not include a timezone offset
To parameter timezone unsupported:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Parameter 'to' should not include a timezone offset
Unit parameter invalid:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Invalid parameter 'unit'
Unit parameter is null:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Invalid parameter 'unit'. Cannot be null
Unit is not allowed:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: 'Invalid parameter ''unit''. Should be one of: '
Fuel parameter is null:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Invalid parameter 'fuel'. Cannot be null.
Fuel parameter unrecognized:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Invalid parameter 'fuel'. Type of unrecognized.
Unit not supported with fuel:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Unit m3 is only supported for fuel types gas and district_heating.
No EUC categories could be calculated:
value:
code: NO_CATEGORIES_IDENTIFIED
transaction_id: 0HN1O72JU5P3C:00000001
description: No categories were identified for the selected location.
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find the location.
Unit conversion rate not found:
value:
code: CLIENT_CONVERSION_RATE_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Conversion rate is missing for the client
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
description: Internal server error, please try again later. If problem remains, please contact support.
/v3/locations/{locationId}/epc-rating:
get:
tags:
- Energy Performance Certificate
summary: Get EPC rating
description: Get an Actual or Estimated Energy Performance Certificate (EPC) rating for a location.
operationId: get-v3-locations-locationId-epc-rating
parameters:
- name: locationId
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/EpcRatingResponse'
examples:
Actual EPC rating:
value:
energy_rating: B
energy_efficiency: 90
type: actual
valid_from: '2020-05-01T00:00:00'
valid_to: '2030-05-01T00:00:00'
status: active
Estimated EPC rating:
value:
energy_rating: C
energy_efficiency: 84
type: estimated
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find the location.
Rating not available:
value:
code: EPC_RATING_NOT_AVAILABLE
transaction_id: 0HN18NIB8K5RV:00000001
description: EPC rating data is currently not available
Country not supported:
value:
code: COUNTRY_NOT_SUPPORTED
transaction_id: 0HN18NIB8K5RV:00000001
description: Country is not currently supported
Profile not supported:
value:
code: PROFILE_NOT_SUPPORTED
transaction_id: 0HN18NIB8K5RV:00000001
description: Profile is not supported, check description for more details
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
code: INTERNAL_SERVER_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
description: Internal server error.
/v3/locations/{locationId}/consumption:
get:
tags:
- Energy Data
summary: Get Location consumption
description: "Get energy consumption for the location. Whether location consumption data exists, and between which dates,\
\ can be found in the meta data in /locations/{locationId} endpoint.\r\n \r\nMaximum time spans for resolutions:\r\
\n* 6min: 7 days\r\n* 15min: 7 days\r\n* 30min: 7 days\r\n* hour: 93 days\r\n* day: 5 years\r\n* month: 5 years\r\n\
\ \r\nNOTE! For cost to be available as a unit type, the location prices must be set in our database. If\
\ no location prices are available there will be an error response.\r\n\r\nNOTE! Unit of m3 is only available with\
\ fuel of gas. Conversion between m3 and Wh values relies on a calorific rate being configured for a client. Please\
\ contact Eliq for more details about having this configuration in place."
operationId: get-v3-locations-locationId-consumption
parameters:
- name: locationId
in: path
description: Location identifier
required: true
schema:
type: integer
format: int32
- name: from
in: query
description: From date
schema:
type: string
format: date-time
- name: to
in: query
description: To date, exclusive
schema:
type: string
format: date-time
- name: resolution
in: query
description: 'Data granularity resolution. Valid values: ''6min'', ''15min'', ''30min'', ''hour'', ''day'', ''month''.'
schema:
type: string
- name: cost_type
in: query
description: "Only applicable when 'cost' unit is passed. Specifies the consumption cost type to return.\r\n \
\ If set to 'price_formula', price formulas are used to calculate the consumption costs.\r\n \
\ If set to 'average_cost', the costs are calculated based on the average electricity price for the provided period."
schema:
type: string
default: price_formula
- name: fuel
in: query
description: 'Fuel. Valid values: ''elec'', ''gas''.'
schema:
type: string
default: elec
- name: unit
in: query
description: 'Unit. Valid values: ''cost'', ''energy''.'
schema:
type: string
default: energy
- name: include_incomplete
in: query
description: Includes periods with incomplete data if set to true.
schema:
type: boolean
default: true
- name: include_co2
in: query
description: Includes co2 emissions data if set to true.
schema:
type: boolean
default: false
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TimeSeriesData'
examples:
Monthly energy response:
value:
consumption:
- 446.37
- null
resolution: month
fuel: elec
unit: energy
from: '2021-01-01T00:00:00'
to: '2021-03-01T00:00:00'
Monthly cost response:
value:
consumption:
- 33.29
- null
resolution: month
fuel: elec
unit: cost
from: '2021-01-01T00:00:00'
to: '2021-03-01T00:00:00'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid parameter unit:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: 'Invalid parameter ''unit'': The value is not valid.'
Invalid parameter resolution:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: 'Invalid parameter ''resolution'': The value is not valid.'
Invalid parameter cost_type:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: 'Invalid parameter ''cost_type'': The value is not valid.'
Invalid parameter fuel:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: 'Invalid parameter ''fuel'': The value is not valid.'
From parameter missing:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'from' missing
To parameter missing:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'to' missing
Date range invalid:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'from' cannot be larger than 'to'
From parameter timezone unsupported:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'from' should not include a timezone offset
To parameter timezone unsupported:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'to' should not include a timezone offset
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
Unit conversion rate not found:
value:
type: client_error
category: client_conversion_rate_not_found
code: CLIENT_CONVERSION_RATE_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Conversion rate is missing for the client
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
type: internal_error
category: internal_error
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong. Please try again later. If problem remains, please contact support.
description: Internal server error, please try again later. If problem remains, please contact support.
/v3/locations/{locationId}/peakpower/{resolution}:
get:
tags:
- Energy Data
summary: Get location peak power
description: "Get energy peak power for the location. Whether location peak power data exists, and between which dates,\
\ can be found in the meta data in /locations/{locationId} endpoint.\r\n\r\nMaximum time spans for resolutions:\r\n\
* hour: 5 years\r\n* day: 5 years\r\n* month: 5 years\r\n\r\nImport, export, consumption and production response properties\
\ are deprecated, please use the *power* property."
operationId: get-v3-locations-locationId-peakpower
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
- name: resolution
in: path
description: Data resolution
required: true
schema:
type: string
- name: peak_power_resolution
in: query
description: Resolution of peak power values
required: true
schema:
type: string
- name: from
in: query
description: From date
required: true
schema:
type: string
format: date-time
- name: to
in: query
description: To date, exclusive
required: true
schema:
type: string
format: date-time
- name: fuel
in: query
description: Fuel type
schema:
enum:
- elec
- gas
- district_heating
type: string
description: Fuel type
default: elec
- name: direction
in: query
description: Type of meter
schema:
enum:
- import
- export
- consumption
- production
type: string
description: Direction type
default: consumption
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PeakPowerResponse'
examples:
Import peak power:
value:
power:
- 3617.840087890625
peak_power_timestamp:
- '2024-06-01T14:00:00'
from: '2024-06-01T00:00:00'
to: '2024-07-01T00:00:00'
fuel: elec
direction: import
resolution: month
peak_power_resolution: hour
import:
- 3617.840087890625
Consumption peak power:
value:
power:
- 1228.7999420166016
- 436.4199981689453
- 1418.760009765625
- 746.5799865722656
peak_power_timestamp:
- '2024-07-01T06:30:00'
- '2024-07-02T08:30:00'
- '2024-07-03T14:00:00'
- '2024-07-04T16:00:00'
from: '2024-07-01T00:00:00'
to: '2024-07-05T00:00:00'
fuel: elec
direction: consumption
resolution: day
peak_power_resolution: 30min
consumption:
- 1228.7999420166016
- 436.4199981689453
- 1418.760009765625
- 746.5799865722656
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
From parameter missing:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Parameter 'from' missing
To parameter missing:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Parameter 'to' missing
Date range invalid:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Parameter 'from' cannot be larger than 'to'
From parameter timezone unsupported:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Parameter 'from' should not include a timezone offset
To parameter timezone unsupported:
value:
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
description: Parameter 'to' should not include a timezone offset
Invalid peak power resolution:
value:
code: INVALID_PEAK_POWER_RESOLUTION
transaction_id: 0HN18NIB8K5RV:00000001
description: Invalid peak power resolution type. Only valid values are e.g 6min, 15min, 30min and hour.
Period too long:
value:
code: PERIOD_TOO_LONG
transaction_id: 0HN18NIB8K5RV:00000001
description: Maximum period requested can not exceed 5 years.
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find the location.
/v3/locations/{locationId}/yearly_estimates:
get:
tags:
- Locations
summary: Get locations manual Annual Consumption values
description: "Annual consumption values manually provided by end users.\r\n\r\nUser provided Annual Consumption data\
\ is used to generate estimated daily consumption for locations that have no actual meter data available yet."
operationId: get-v3-locations-locationId-yearly_estimates
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
- name: year_from
in: query
description: Year from
schema:
type: integer
format: int32
- name: year_to
in: query
description: Year to, exclusive
schema:
type: integer
format: int32
- name: fuel
in: query
description: Fuel
schema:
$ref: '#/components/schemas/Fuel'
- name: type
in: query
description: Direction
schema:
$ref: '#/components/schemas/Direction'
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/YearlyEstimate'
examples:
Location consumption estimates:
value:
- fuel: elec
type: consumption
year: 2022
source: user
energy_wh: 78020
- fuel: elec
type: consumption
year: 2023
source: user
energy_wh: 71515
Single location consumption estimate:
value:
- fuel: elec
type: consumption
year: 2020
source: user
energy_wh: 63000
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid parameter fuel:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: 'Invalid parameter ''fuel'': The value is not valid.'
Invalid parameter direction:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: 'Invalid parameter ''direction'': The value is not valid.'
From parameter missing:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'from' missing
To parameter missing:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'to' missing
Date range invalid:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'from' cannot be larger than 'to'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
post:
tags:
- Locations
summary: Post locations manual Annual Consumption values
description: "Submit annual consumption value.\r\n\r\nUser provided Annual Consumption data is used to generate estimated\
\ daily consumption for locations that have no actual meter data available yet."
operationId: post-v3-locations-locationId-yearly_estimates
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
requestBody:
description: ''
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/YearlyEstimate'
examples:
Location consumption estimate:
value:
fuel: elec
type: consumption
year: 2022
source: user
energy_wh: 78020
application/json:
schema:
$ref: '#/components/schemas/YearlyEstimate'
examples:
Location consumption estimate:
value:
fuel: elec
type: consumption
year: 2022
source: user
energy_wh: 78020
text/json:
schema:
$ref: '#/components/schemas/YearlyEstimate'
examples:
Location consumption estimate:
value:
fuel: elec
type: consumption
year: 2022
source: user
energy_wh: 78020
application/*+json:
schema:
$ref: '#/components/schemas/YearlyEstimate'
examples:
Location consumption estimate:
value:
fuel: elec
type: consumption
year: 2022
source: user
energy_wh: 78020
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/YearlyEstimate'
examples:
Location consumption estimate:
value:
fuel: elec
type: consumption
year: 2022
source: user
energy_wh: 78020
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid parameter fuel:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: 'Invalid parameter ''fuel'': The value is not valid.'
Invalid parameter direction:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: 'Invalid parameter ''direction'': The value is not valid.'
Empty request error:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Request cannot be null
Missing energy value:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'energy_wh' cannot be null
Negative energy value:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'energy_wh' cannot be negative
Zero energy value:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'energy_wh' cannot be zero
Missing year value:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'year' cannot be null
Invalid year value:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'year' is invalid
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
delete:
tags:
- Locations
summary: Delete locations manual Annual Consumption Value
description: "Deletes matching locations annual consumption value.\r\n\r\nUser provided Annual Consumption data is used\
\ to generate estimated daily consumption for locations that have no actual meter data available yet."
operationId: delete-v3-locations-locationId-yearly_estimates
parameters:
- name: locationId
in: path
description: Location identifier
required: true
schema:
type: integer
format: int32
- name: fuel
in: query
description: Fuel type
required: true
schema:
$ref: '#/components/schemas/Fuel'
- name: type
in: query
description: Consumption type
required: true
schema:
$ref: '#/components/schemas/Direction'
- name: year
in: query
description: Year
required: true
schema:
type: integer
format: int32
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid parameter fuel:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: 'Invalid parameter ''fuel'': The value is not valid.'
Invalid parameter direction:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: 'Invalid parameter ''direction'': The value is not valid.'
Invalid parameter year:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: 'Invalid parameter ''year'': The value is not valid.'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/v3/locations/{locationId}/yearly_estimates/suggestion:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
description: Location identifier
get:
summary: Get location Annual Consumption Suggestion
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
country_code:
type: string
fuel:
type: string
yearly_consumption:
type: object
properties:
units:
type: string
estimate:
type: integer
upper_bound:
type: integer
lower_bound:
type: integer
confidence_level:
type: integer
x-examples:
Example 1:
country_code: be
fuel: elec
yearly_consumption:
units: wh
estimate: 2181236
upper_bound: 7370570
lower_bound: 7370570
confidence_level: 96
examples:
Example 1:
value:
country_code: be
fuel: elec
yearly_consumption:
units: wh
estimate: 2181236
upper_bound: 7370570
lower_bound: 7370570
confidence_level: 96
'400':
description: 'Bad Request
Possible errors
| *code* | *description* |
| --- | --- |
| CONFIDENCE_LEVEL_PERCENTAGE_CANNOT_BE_NULL | Confidence level percentage can not be null. |
| LOCATION_PROPERTIES_SETTINGS_IS_NOT_COMPLETE | Location home profile is not complete. |
| INVALID_PARAMETER | Invalid parameter ''fuel''. Should be one of: elec, gas, district_heating |
| ENTITY_NOT_FOUND | Could not find the location. |'
content:
application/json:
schema:
type: object
properties:
code:
type: string
transaction_id:
type: string
description:
type: string
x-examples:
Example 1:
code: CONFIDENCE_LEVEL_PERCENTAGE_CANNOT_BE_NULL
transaction_id: 0HMRB3B2I6UOR:0000000F
description: Confidence level percentage can not be null.
examples:
Error example:
value:
type: client_error
category: entity_not_found
transaction_id: 0HMLS31S9QPFP:00002A1C
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
operationId: get-v3-locations-locationId-consumption/suggestion
description: 'This endpoint returns the “locations annual consumption Suggestion”.
Note: User''s home profile is required to generate this value. In order for this to work, the Eliq Platform must support
the Country. Contact Eliq for an update on supported countries.
To be able to create the estimated suggestion a set of home profile values needs to be set. This can vary from country
to country but typically these values are required; persons, heating_type_primary, house_type and hotwater_type.'
parameters:
- schema:
type: string
in: query
name: confidence_level_percentage
required: true
description: Confidence level percentage. Use 96 for the best result.
- schema:
type: string
enum:
- elec
- gas
in: query
name: fuel
description: Fuel type, currently gas is not supported in some countries
tags:
- Locations
/v3/locations/{locationId}/price-formula:
get:
tags:
- Price Formulas
summary: Get price formulas
description: Get a list of price formulas for a location and its meters
operationId: get-v3-locations-locationId-price-formula
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
- name: fuel
in: query
description: Fuel type
schema:
$ref: '#/components/schemas/Fuel'
- name: direction
in: query
description: Direction type
schema:
$ref: '#/components/schemas/PriceFormulaDirection'
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MeterPriceFormula'
examples:
Location Fixed unit rate:
value:
- fuel: elec
direction: import
from: '2023-01-01T00:00:00'
to: '2023-12-31T00:00:00'
currency_code: GBP
elements_array:
- name: service_charge_day
type: charge
charge:
resolution: day
charge: 0.2
- name: unit_rate_fixed
type: unit_rate
unit_rate:
type: fixed
fixed:
unit_rate: 0.15
source: client
Location Nordpool unit rate:
value:
- fuel: elec
direction: import
from: '2023-01-01T00:00:00'
to: '2023-12-31T00:00:00'
currency_code: GBP
elements_array:
- name: service_charge_day
type: charge
charge:
resolution: day
charge: 0.2
- name: unit_rate_nordpool
type: unit_rate
unit_rate:
type: nordpool
nordpool:
region: nordpool_no2
resolution: hour
multiplier: 1.25
source: client
Meter Nordpool unit rate:
value:
- meter_id: 111ccf3a1907438fac72e0f231d137ff
fuel: elec
direction: import
from: '2023-01-01T00:00:00'
to: '2023-12-31T00:00:00'
currency_code: GBP
elements_array:
- name: service_charge_day
type: charge
charge:
resolution: day
charge: 0.2
- name: unit_rate_nordpool
type: unit_rate
unit_rate:
type: nordpool
nordpool:
region: nordpool_no2
resolution: hour
multiplier: 1.25
source: client
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find the location.
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
code: INTERNAL_SERVER_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
description: Internal server error.
/v3/locations/{locationId}/production:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
description: Location identifier
get:
summary: Get location production
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TimeseriesData'
examples:
Example month:
value:
production:
- 446.37
- null
fuel: elec
unit: energy
resolution: month
from: '2021-01-01T00:00:00'
to: '2021-03-01T00:00:00'
'400':
description: 'Bad Request
Possible errors
| *type* | *category* | *description* |
| --- | --- | --- |
| client_error | invalid_parameter | Timespan between ''from'' and ''to'' to large, max {maxTimeSpan} days for
the given resolution |
| client_error | invalid_parameter | Parameter ''to'' missing |
| client_error | invalid_parameter | Parameter ''from'' missing |
| client_error | invalid_parameter | Parameter ''from'' cannot be larger than ''to'' |
| client_error | invalid_parameter | Invalid parameter ''unit''. Should be one of: energy, cost |
| client_error | invalid_parameter | Invalid parameter ''fuel''. Should be one of: elec, gas, district_heating
|
| client_error | invalid_parameter | Invalid parameter ''resolution''. Should be one of: 6min, 15min, 30min, hour,
day, month |'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error example:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
description: Invalid parameter 'to'. Cannot be null
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
Unit conversion rate not found:
value:
type: client_error
category: client_conversion_rate_not_found
code: CLIENT_CONVERSION_RATE_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Conversion rate is missing for the client
operationId: get-v3-locations-locationId-production
description: 'Get energy production for the location. Whether location production data exists, and between which dates,
can be found in the meta data in /locations/{locationId} endpoint. The production will be a summary of all production
for a location, meaning that in case of multiple pv systems installed, this will return the total energy.
Maximum time spans for resolutions
* 6min: 7 days
* 15min: 7 days
* 30min: 7 days
* hour: 93 days
* day: 5 years
* month: 5 years
`NOTE!` For cost to be available as a unit type, the location prices must be set in our database. If no location prices
are available there will be an error response.'
parameters:
- schema:
type: string
enum:
- elec
- gas
- district_heating
default: elec
example: elec
in: query
name: fuel
description: Fuel. Defaults to 'elec'
- schema:
type: string
default: energy
enum:
- energy
- cost
example: energy
in: query
name: unit
description: Unit. Defaults to 'energy'
- schema:
type: string
enum:
- 6min
- 15min
- 30min
- hour
- day
- month
example: day
in: query
name: resolution
description: Resolution of data
required: true
- schema:
type: string
example: '2021-01-01T00:00:00'
format: date-time
in: query
name: from
description: From date
required: true
- schema:
type: string
format: date-time
example: '2021-02-01T00:00:00'
in: query
name: to
description: The 'to date' represents the end date of the time period. The value is exclusive, indicating that the
specified date is not included in the data range. It is rounded down to the closest start of the period for the
given resolution.
required: true
tags:
- Energy Data
/v3/locations/{locationId}/import:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
description: Location identifier
get:
summary: Get location import
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TimeseriesData'
examples:
Example month:
value:
import:
- 446.37
- null
fuel: elec
unit: energy
resolution: month
from: '2021-01-01T00:00:00'
to: '2021-03-01T00:00:00'
'400':
description: 'Bad Request
Possible errors
| *type* | *category* | *description* |
| --- | --- | --- |
| client_error | invalid_parameter | Timespan between ''from'' and ''to'' to large, max {maxTimeSpan} days for
the given resolution |
| client_error | invalid_parameter | Parameter ''to'' missing |
| client_error | invalid_parameter | Parameter ''from'' missing |
| client_error | invalid_parameter | Parameter ''from'' cannot be larger than ''to'' |
| client_error | invalid_parameter | Invalid parameter ''unit''. Should be one of: energy, cost |
| client_error | invalid_parameter | Invalid parameter ''fuel''. Should be one of: elec, gas, district_heating
|
| client_error | invalid_parameter | Invalid parameter ''resolution''. Should be one of: 6min, 15min, 30min, hour,
day, month |'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error example:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
description: Invalid parameter 'to'. Cannot be null
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
Unit conversion rate not found:
value:
type: client_error
category: client_conversion_rate_not_found
code: CLIENT_CONVERSION_RATE_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Conversion rate is missing for the client
operationId: get-v3-locations-locationId-import
description: 'Get imported energy for the location. Whether location import data exists, and between which dates, can
be found in the meta data in /locations/{locationId} endpoint. This represents the energy imported from the grid.
Maximum time spans for resolutions
* 6min: 7 days
* 15min: 7 days
* 30min: 7 days
* hour: 93 days
* day: 5 years
* month: 5 years
`NOTE!` For cost to be available as a unit type, the location prices must be set in our database. If no location prices
are available there will be an error response.'
parameters:
- schema:
type: string
enum:
- elec
- gas
- district_heating
default: elec
example: elec
in: query
name: fuel
description: Fuel. Defaults to 'elec'
- schema:
type: string
default: energy
enum:
- energy
- cost
example: energy
in: query
name: unit
description: Unit. Defaults to 'energy'
- schema:
type: string
enum:
- 6min
- 15min
- 30min
- hour
- day
- month
example: day
in: query
name: resolution
description: Resolution of data
required: true
- schema:
type: string
example: '2021-01-01T00:00:00'
format: date-time
in: query
name: from
description: From date
required: true
- schema:
type: string
format: date-time
example: '2021-02-01T00:00:00'
in: query
name: to
description: The 'to date' represents the end date of the time period. The value is exclusive, indicating that the
specified date is not included in the data range. It is rounded down to the closest start of the period for the
given resolution.
required: true
tags:
- Energy Data
/v3/locations/{locationId}/export:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
description: Location identifier
get:
summary: Get location export
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TimeseriesData'
examples:
Example month:
value:
export:
- 446.37
- null
fuel: elec
unit: energy
resolution: month
from: '2021-01-01T00:00:00'
to: '2021-03-01T00:00:00'
'400':
description: 'Bad Request
Possible errors
| *type* | *category* | *description* |
| --- | --- | --- |
| client_error | invalid_parameter | Timespan between ''from'' and ''to'' to large, max {maxTimeSpan} days for
the given resolution |
| client_error | invalid_parameter | Parameter ''to'' missing |
| client_error | invalid_parameter | Parameter ''from'' missing |
| client_error | invalid_parameter | Parameter ''from'' cannot be larger than ''to'' |
| client_error | invalid_parameter | Invalid parameter ''unit''. Should be one of: energy, cost |
| client_error | invalid_parameter | Invalid parameter ''fuel''. Should be one of: elec, gas, district_heating
|
| client_error | invalid_parameter | Invalid parameter ''resolution''. Should be one of: 6min, 15min, 30min, hour,
day, month |'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error example:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
description: Invalid parameter 'to'. Cannot be null
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
Unit conversion rate not found:
value:
type: client_error
category: client_conversion_rate_not_found
code: CLIENT_CONVERSION_RATE_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Conversion rate is missing for the client
operationId: get-v3-locations-locationId-export
description: 'Get exported energy for the location. Whether location export data exists, and between which dates, can
be found in the meta data in /locations/{locationId} endpoint. This represents the energy exported to the grid.
Maximum time spans for resolutions
* 6min: 7 days
* 15min: 7 days
* 30min: 7 days
* hour: 93 days
* day: 5 years
* month: 5 years
`NOTE!` For cost to be available as a unit type, the location prices must be set in our database. If no location prices
are available there will be an error response.'
parameters:
- schema:
type: string
enum:
- elec
- gas
- district_heating
default: elec
example: elec
in: query
name: fuel
description: Fuel. Defaults to 'elec'
- schema:
type: string
default: energy
enum:
- energy
- cost
example: energy
in: query
name: unit
description: Unit. Defaults to 'energy'
- schema:
type: string
enum:
- 6min
- 15min
- 30min
- hour
- day
- month
example: day
in: query
name: resolution
description: Resolution of data
required: true
- schema:
type: string
example: '2021-01-01T00:00:00'
format: date-time
in: query
name: from
description: From date
required: true
- schema:
type: string
format: date-time
example: '2021-02-01T00:00:00'
in: query
name: to
description: The 'to date' represents the end date of the time period. The value is exclusive, indicating that the
specified date is not included in the data range. It is rounded down to the closest start of the period for the
given resolution.
required: true
tags:
- Energy Data
/v3/locations/{locationId}/forecast:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
description: Location identifier
get:
summary: Get location forecast
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TimeseriesData'
examples:
Example month:
value:
forecast:
- 446.37
- 380.24
fuel: elec
unit: energy
resolution: month
from: '2021-01-01T00:00:00'
to: '2021-03-01T00:00:00'
'400':
description: 'Bad Request
Possible errors
| *type* | *category* | *description* |
| --- | --- | --- |
| client_error | invalid_parameter | Timespan between ''from'' and ''to'' to large, max {maxTimeSpan} days for
the given resolution |
| client_error | invalid_parameter | Parameter ''to'' missing |
| client_error | invalid_parameter | Parameter ''from'' missing |
| client_error | invalid_parameter | Parameter ''from'' cannot be larger than ''to'' |
| client_error | invalid_parameter | Invalid parameter ''unit''. Should be one of: energy, cost |
| client_error | invalid_parameter | Invalid parameter ''fuel''. Should be one of: elec, gas, district_heating
|
| client_error | invalid_parameter | Invalid parameter ''resolution''. Should be one of: day, month |'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error example:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
description: Invalid parameter 'to'. Cannot be null
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
Unit conversion rate not found:
value:
type: client_error
category: client_conversion_rate_not_found
code: CLIENT_CONVERSION_RATE_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Conversion rate is missing for the client
operationId: get-v3-locations-locationId-forecast
description: "Get consumption forecast the location. Whether location consumption data exists, and between which dates,\
\ can be found in the meta data in /locations/{locationId} endpoint. \n\nMaximum time spans for resolutions\n\n* day:\
\ 31 days\n* month: 12 months\n\n`NOTE!` For cost to be available as a unit type, the location prices must be set\
\ in our database. If no location prices are available there will be an error response.\n\n`NOTE!` If allow_historic\
\ is set to true, we will return what the forecast looked like at the date of the \"from\" date. Meaning that no data\
\ points after the from date will be used to calculate the forecast.\n\n`NOTE!` Unit of m3 is only available with\
\ fuel of gas. Conversion between m3 and Wh values relies on a calorific rate being configured for a client. Please\
\ contact Eliq for more details about having this configuration in place."
parameters:
- schema:
type: string
enum:
- elec
- gas
- district_heating
default: elec
example: elec
in: query
name: fuel
description: Fuel. Defaults to 'elec'
- schema:
type: string
enum:
- energy
- cost
- m3
default: energy
example: energy
in: query
name: unit
description: Unit. Defaults to 'energy'
- schema:
type: string
enum:
- day
- month
example: day
in: query
name: resolution
description: Resolution of data
required: true
- schema:
type: string
example: '2021-01-01T00:00:00'
format: date-time
in: query
name: from
description: From date
required: true
- schema:
type: string
format: date-time
example: '2021-02-01T00:00:00'
in: query
name: to
description: The 'to date' represents the end date of the time period. The value is exclusive, indicating that the
specified date is not included in the data range. It is rounded down to the closest start of the period for the
given resolution.
required: true
- schema:
type: boolean
in: query
description: default is set to false.
name: allow_historic
- schema:
type: boolean
in: query
description: Includes consumption data for the first month of the request. Only applicable for 'month' resolution.
Default is set to false.
name: include_consumption
tags:
- Energy Data
/v3/locations/{locationId}/forecast/hourly:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
description: Location identifier
get:
summary: Get location forecast hourly
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
x-examples:
example-1:
forecast:
estimate:
- 2150
- 2150
- 1900
- 2250
- 2250
- 2325
- 2675
- 2300
- 2600
- 2300
- 2900
- 2075
- 1825
- 2550
- 2025
- 2275
- 2850
- 3950
- 3925
- 3300
- 3100
- 2675
- 1975
- 3325
lower_bound:
- 2300
- 2050
- 2000
- 2400
- 2350
- 2800
- 2750
- 2600
- 2800
- 2050
- 3100
- 2150
- 2150
- 2550
- 2150
- 1650
- 2250
- 4350
- 4050
- 3150
- 2800
- 3100
- 2150
- 3000
upper_bound:
- 2300
- 2050
- 2000
- 2400
- 2350
- 2800
- 2750
- 2600
- 2800
- 2050
- 3100
- 2150
- 2150
- 2550
- 2150
- 1650
- 2250
- 4350
- 4050
- 3150
- 2800
- 3100
- 2150
- 3000
fuel: elec
unit: energy
from: '2021-04-01T00:00:00'
to: '2021-04-02T00:00:00'
properties:
forecast:
type: object
description: Hourly forecast value if available.
properties:
estimate:
type: array
items:
type: integer
lower_bound:
type: array
items:
type: integer
upper_bound:
type: array
items:
type: integer
fuel:
type: string
description: Fuel. elec, gas, district_heating
unit:
type: string
description: Unit. 'energy' or 'cost'
from:
type: string
description: From date
to:
type: string
description: The 'to date' represents the end date of the time period. The value is exclusive, indicating
that the specified date is not included in the data range. It is rounded down to the closest start of
the period for the given resolution.
examples:
Example month:
value:
forecast:
estimate:
- 2150
- 2150
- 1900
- 2250
- 2250
- 2325
- 2675
- 2300
- 2600
- 2300
- 2900
- 2075
- 1825
- 2550
- 2025
- 2275
- 2850
- 3950
- 3925
- 3300
- 3100
- 2675
- 1975
- 3325
lower_bound:
- 2300
- 2050
- 2000
- 2400
- 2350
- 2800
- 2750
- 2600
- 2800
- 2050
- 3100
- 2150
- 2150
- 2550
- 2150
- 1650
- 2250
- 4350
- 4050
- 3150
- 2800
- 3100
- 2150
- 3000
upper_bound:
- 2300
- 2050
- 2000
- 2400
- 2350
- 2800
- 2750
- 2600
- 2800
- 2050
- 3100
- 2150
- 2150
- 2550
- 2150
- 1650
- 2250
- 4350
- 4050
- 3150
- 2800
- 3100
- 2150
- 3000
fuel: elec
unit: energy
from: '2021-04-01T00:00:00'
to: '2021-04-02T00:00:00'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
code:
type: string
transaction_id:
type: string
description:
type: string
x-examples:
example-1:
code: TIMESPAN_TOO_LARGE
transaction_id: 0HMMBOERV1RBM:00000002
description: Timespan to large, max 2 days for the given resolution
examples:
Time Span Is Too Large:
value:
code: TIMESPAN_TOO_LARGE
transaction_id: 0HMMBOERV1RBM:00000002
description: Timespan to large, max 2 days for the given resolution
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Forecast not found:
value:
code: HOURLY_FORECAST_RESULT_CANNOT_BE_NULL_OR_EMPTY
transaction_id: 0HN18NIB8K5RV:00000001
description: Hourly forecast result cannot be null or empty
operationId: get-v3-locations-locationId-forecast-hourly
description: "Get consumption hourly forecast the location. Whether location consumption data exists, and between which\
\ dates, can be found in the meta data in /locations/{locationId} endpoint. \n\nMaximum time spans for the resolution\
\ is 2 days\n\n`NOTE!` For cost to be available as a unit type, the location prices must be set in our database. If\
\ no location prices are available there will be an error response.\n\n`NOTE!` If allow_historic is set to true, we\
\ will return what the forecast looked like at the date of the \"from\" date. Meaning that no data points after the\
\ from date will be used to calculate the forecast."
parameters:
- schema:
type: string
enum:
- elec
- gas
- district_heating
default: elec
example: elec
in: query
name: fuel
description: Fuel. Defaults to 'elec'
- schema:
type: string
enum:
- energy
- cost
default: energy
example: energy
in: query
name: unit
description: Unit. Defaults to 'energy'
- schema:
type: string
example: '2021-01-01T00:00:00'
format: date-time
in: query
name: from
description: From date
required: true
- schema:
type: string
format: date-time
example: '2021-02-01T00:00:00'
in: query
name: to
description: The 'to date' represents the end date of the time period. The value is exclusive, indicating that the
specified date is not included in the data range. It is rounded down to the closest start of the period for the
given resolution.
required: true
- schema:
type: boolean
in: query
description: default is set to false.
name: allow_historic
tags:
- Energy Data
/v3/meters/{meterId}/energy:
parameters:
- schema:
type: string
name: meterId
in: path
required: true
description: Meter id
get:
summary: Get meter energy data
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/MeterDataResult'
examples:
Example 1:
value:
meter:
- direction: import
data:
- 1.54
- 1.006
- 1.226
- 1.226
- 1.227
- 1.103
- 1.2
- 1.226
- 0.86
from: '2023-09-01T00:00:00'
to: '2023-09-10T00:00:00'
resolution: day
fuel: elec
unit: cost
'400':
description: 'Bad Request
Possible errors
| *type* | *category* | *description* |
| --- | --- | --- |
| client_error | invalid_parameter | Timespan between ''from'' and ''to'' too large, max {maxTimeSpan} days for
the given resolution |
| client_error | invalid_parameter | Parameter ''to'' missing |
| client_error | invalid_parameter | Parameter ''from'' missing |
| client_error | invalid_parameter | Parameter ''from'' cannot be larger than ''to'' |
| client_error | invalid_parameter | Invalid parameter ''unit''. Should be one of: energy, cost |
| client_error | invalid_parameter | Invalid parameter ''fuel''. Should be one of: elec, gas, district_heating
|
| client_error | invalid_parameter | Invalid parameter ''resolution''. Should be one of: 6min, 15min, 30min, hour,
day, month |
| client_error | invalid_parameter | No meter with matching provided id found for the location |
| client_error | invalid_parameter | Can not provide energy data for selected clients meter |'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error example:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
description: Invalid parameter 'to'. Cannot be null
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Unit conversion rate not found:
value:
type: client_error
category: client_conversion_rate_not_found
code: CLIENT_CONVERSION_RATE_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Conversion rate is missing for the client
operationId: get-v3-meters-meterId-energy
description: "Get meter specific data for a period, which is broken down into intervals of selected resolution type.\
\ \nA list of available meters for the location can be found in the meta data in /locations/{locationId} endpoint.\n\
\nMaximum time spans for resolutions\n\n* 6min: 7 days\n* 15min: 7 days\n* 30min: 7 days\n* hour: 93 days\n* day:\
\ 5 years\n* month: 5 years\n\nMeters having the following fuel types are supported - `elec`, `gas`, `district_heating`.\n\
\n`NOTE!` For cost to be available as a unit type, the location prices must be set in our database. If no location\
\ prices are available there will be an error response.\n\n`NOTE!` Unit of m3 is only available with fuel of gas.\
\ Conversion between m3 and Wh values relies on a calorific rate being configured for a client. Please contact Eliq\
\ for more details about having this configuration in place."
parameters:
- schema:
type: string
default: energy
enum:
- energy
- cost
- m3
example: energy
in: query
name: unit
description: Unit. Defaults to 'energy'
- schema:
type: string
enum:
- 6min
- 15min
- 30min
- hour
- day
- month
example: day
in: query
name: resolution
description: Resolution of data
required: true
- schema:
type: string
example: '2021-01-01T00:00:00'
format: date-time
in: query
name: from
description: From date
required: true
- schema:
type: string
format: date-time
example: '2021-02-01T00:00:00'
in: query
name: to
description: The 'to date' represents the end date of the time period. The value is exclusive, indicating that the
specified date is not included in the data range. It is rounded down to the closest start of the period for the
given resolution.
required: true
tags:
- Energy Data
/v3/locations/{locationId}/similarhomes:
get:
tags:
- Similar Homes
summary: Get similar homes group
description: "Get information of which homes the location is compared to.\r\n\r\nNote that heating_degree_days are only\
\ available for countries where the climate zones differ so much that it has a substantial impact on the heating consumption\
\ and therefore impacts the comparison. It's currently supported for France, Finland, Norway, Sweden and the U.K.\r\
\n\r\nPossible result status action codes:\r\n| *code* | *description* |\r\n| --- | --- | \r\n| sh_home_profile_insufficent\
\ | The home profile for the location is insufficient. Please ask a user to provide additional home profile details.\
\ |\r\n| sh_no_matching_group | No group could be found for the location. |"
operationId: get-v3-locations-locationId-similarhomes
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SimilarHomesGroupResultModel'
examples:
Similar homes group:
value:
result:
filters:
- key: house_type
description: House
type: limit_values
limit_values:
- house
- key: heating_type_primary
description: Air air pump
type: limit_values
limit_values:
- air_air_pump
- key: living_area
description: '{LimitMin}-{LimitMax}m²'
type: limit_range
limit_range:
min: 120
max: 200
- key: heating_degree_days
description: Warmer climate
type: limit_range
limit_range:
min: 0
max: 3000
- key: electric_cars
description: Single electric car
type: limit_range
limit_range:
min: 1
max: 1
contributors: 492
result_status:
code: ok
Home profile insufficient:
value:
result_status:
code: not_ok
action:
code: sh_home_profile_insufficent
description: Please update your home profile to get a result
No matching group:
value:
result_status:
code: not_ok
action:
code: sh_no_matching_group
description: Could not find any group matching your home profile, please check that your home profile
is correctly specified.
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
type: internal_error
category: internal_error
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong. Please try again later. If problem remains, please contact support.
description: Internal server error, please try again later. If problem remains, please contact support.
/v3/locations/{locationId}/similarhomes/consumption:
get:
tags:
- Similar Homes
summary: Get similar homes consumption
description: "This endpoint returns an array of average energy consumption values for a similar homes group.\r\n \
\ \r\nMaximum requested time span by resolution:\r\n* day: 31 days\r\n* month: 12 months\r\n \r\
\nFor cost to be available as a unit type, the location must have device price formulas set in our system.\r\n \
\ \r\nTo date is exclusive and not included in the data range, as is with all endpoints having date range\
\ parameters. It is rounded down to the closest start of the period for the given resolution.\r\n\r\nPossible result\
\ status action codes:\r\n| *code* | *description* |\r\n| --- | --- | \r\n| sh_home_profile_insufficent | The home\
\ profile for the location is insufficient. Please ask a user to provide additional home profile details. |\r\n| sh_not_enough_contributers\
\ | There is not enough energy consumption data for the homes in the similar homes group. This can happen if the period\
\ requested is in the future, or if we still have not received consumption data for the requested period. |\r\n| sh_no_matching_group\
\ | No group could be found for the location. |\r\n| sh_no_price_information | Locations device price formulas are\
\ missing. Documentation on price formulas can be found in the Data Management API. |"
operationId: get-v3-locations-locationId-similarhomes-consumption
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
- name: resolution
in: query
description: 'Resolution. Valid values: ''day'', ''month''.'
required: true
schema:
type: string
- name: from
in: query
description: From date
required: true
schema:
type: string
format: date-time
- name: to
in: query
description: To date, exclusive
required: true
schema:
type: string
format: date-time
- name: fuel
in: query
description: 'Fuel. Valid values: ''elec'', ''gas''.'
schema:
type: string
default: elec
- name: unit
in: query
description: 'Unit. Valid values: ''cost'', ''energy''.'
schema:
type: string
default: energy
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SimilarHomesConsumptionResultModel'
examples:
Similar homes monthly data:
value:
result:
values:
- 446.37
- 445.21
resolution: month
fuel: elec
unit: energy
from: '2023-01-01T00:00:00'
to: '2023-03-01T00:00:00'
result_status:
code: ok
Home profile insufficient:
value:
result_status:
code: not_ok
action:
code: sh_home_profile_insufficent
description: Please update your home profile to get a result
Not enough contributors:
value:
result_status:
code: not_ok
action:
code: sh_not_enough_contributers
description: Not enough similar homes data for the specified time period. Please try again in a few
days
No matching group:
value:
result_status:
code: not_ok
action:
code: sh_no_matching_group
description: Could not find any group matching your home profile, please check that your home profile
is correctly specified.
No price information:
value:
result_status:
code: not_ok
action:
code: sh_no_price_information
description: No price information could be found for the location in the given timespan
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid parameter:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Invalid parameter details
From parameter missing:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'from' missing
To parameter missing:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'to' missing
Date range invalid:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'from' cannot be larger than 'to'
From parameter timezone unsupported:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'from' should not include a timezone offset
To parameter timezone unsupported:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'to' should not include a timezone offset
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
type: internal_error
category: internal_error
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong. Please try again later. If problem remains, please contact support.
description: Internal server error, please try again later. If problem remains, please contact support.
/v3/locations/{locationId}/similarhomes/report:
get:
tags:
- Similar Homes
summary: Get similar homes report
description: "Get energy consumption data for similar homes. Contains an average value and deciles, from 1st to 10th\
\ (maximum value), for the group.\r\n \r\nMaximum requested time span by resolution:\r\n* day: 31 days\r\
\n* month: 12 months\r\n \r\nFor cost to be available as a unit type, the location must have device price\
\ formulas set in our system.\r\n\r\nTo date is exclusive and not included in the data range, as is with all endpoints\
\ having date range parameters. It is rounded down to the closest start of the period for the given resolution.\r\n\
\r\nPossible result status action codes:\r\n| *code* | *description* |\r\n| --- | --- | \r\n| sh_home_profile_insufficent\
\ | The home profile for the location is insufficient. Please ask a user to provide additional home profile details.\
\ |\r\n| sh_not_enough_contributers | There is not enough energy consumption data for the homes in the similar homes\
\ group. This can happen if the period requested is in the future, or if we still have not received consumption data\
\ for the requested period. |\r\n| sh_no_matching_group | No group could be found for the location. |\r\n| sh_no_price_information\
\ | Locations device price formulas are missing. Documentation on price formulas can be found in the Data Management\
\ API. |"
operationId: get-v3-locations-locationId-similarhomes-report
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
- name: from
in: query
description: From date
required: true
schema:
type: string
format: date-time
- name: to
in: query
description: To date, exclusive
required: true
schema:
type: string
format: date-time
- name: fuel
in: query
description: 'Fuel. Valid values: ''elec'', ''gas''.'
schema:
type: string
- name: unit
in: query
description: 'Unit. Valid values: ''cost'', ''energy''.'
schema:
type: string
default: energy
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SimilarHomesReportResultModel'
examples:
Similar homes report:
value:
result:
value: 1807883
distribution_values:
- 906572
- 1097816
- 1362194
- 1538083
- 1644288
- 1789743
- 2011656
- 2233231
- 2549989
- 3262674
from: '2023-12-01T00:00:00'
to: '2024-01-01T00:00:00'
result_status:
code: ok
Home profile insufficient:
value:
result_status:
code: not_ok
action:
code: sh_home_profile_insufficent
description: Please update your home profile to get a result
Not enough contributors:
value:
result_status:
code: not_ok
action:
code: sh_not_enough_contributers
description: Not enough similar homes data for the specified time period. Please try again in a few
days
No matching group:
value:
result_status:
code: not_ok
action:
code: sh_no_matching_group
description: Could not find any group matching your home profile, please check that your home profile
is correctly specified.
No price information:
value:
result_status:
code: not_ok
action:
code: sh_no_price_information
description: No price information could be found for the location in the given timespan
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid parameter:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Invalid parameter details
From parameter missing:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'from' missing
To parameter missing:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'to' missing
Date range invalid:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'from' cannot be larger than 'to'
From parameter timezone unsupported:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'from' should not include a timezone offset
To parameter timezone unsupported:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JU5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Parameter 'to' should not include a timezone offset
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
type: internal_error
category: internal_error
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong. Please try again later. If problem remains, please contact support.
description: Internal server error, please try again later. If problem remains, please contact support.
/v3/locations/{locationId}/budgets:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
get:
summary: Get location budgets
tags:
- Budgets
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Budget'
examples:
Example - No budgets enabled:
value:
- enabled: false
type: budget_monthly
fuel: elec
resolution: month
unit: energy
Example - Awaiting first run:
value:
- enabled: true
type: budget_weekly
fuel: elec
resolution: week
unit: energy
limit: 200000
status:
forecast: null
value: null
result: null
code: not_ok
action:
code: budget_awaiting_first_run
description: Budget is awaiting first run
Example - Runned:
value:
- enabled: true
type: budget_weekly
fuel: elec
resolution: week
unit: energy
limit: 200000
config:
mode: manual
margin_percent: null
status:
code: ok
result: currently_below
value: 16370
forecast: 120000
period_start: '2020-05-11T00:00:00'
period_end: '2020-05-18T00:00:00'
data_until: '2020-05-13T00:00:00'
Example - Auto budget:
value:
- enabled: true
type: budget_monthly
fuel: elec
resolution: month
unit: energy
limit: 144000
config:
mode: auto
margin_percent: 20
series:
fuel: elec
unit: energy
resolution: month
from: '2020-05-01T00:00:00'
to: '2020-06-01T00:00:00'
consumption_cumulative:
- 12000
- 28000
- 41000
- null
forecast_cumulative:
- 30000
- 60000
- 90000
- 120000
status:
code: ok
result: currently_below
value: 41000
forecast: 120000
period_start: '2020-05-01T00:00:00'
period_end: '2020-06-01T00:00:00'
data_until: '2020-05-13T00:00:00'
operationId: get-v3-locations-locationId-budgets
description: 'Get a locations budgets. If a budget is enabled, the budget is active and will have a limit value.
The result of the last run will be in the ''status'' field. If ''status.code'' is "ok", values of the last run will
be shown. If ''status.code'' is "not_ok", the budget have not been running or something went wrong during the last
run.'
parameters:
- schema:
type: string
enum:
- elec
- gas
- district_heating
in: query
name: fuel
description: Optional. Fuel to get budgets for.
- schema:
type: string
enum:
- energy
- cost
in: query
name: unit
description: Optional. Unit to get budgets for.
- schema:
type: string
enum:
- week
- month
in: query
name: resolution
description: Optional. Resolution to get budgets for
put:
summary: Update location budgets
operationId: put-v3-locations-locationId-budgets
responses:
'200':
description: OK
description: Update a locations budget. A budget is unique by providing fuel, resolution and unit. To update a budget,
all of these needs to be specified in the query parameters.
parameters:
- schema:
type: string
example: elec
enum:
- elec
- gas
- district_heating
in: query
name: fuel
required: true
description: Fuel
- schema:
type: string
enum:
- energy
- cost
example: energy
in: query
name: unit
description: Unit
required: true
- schema:
type: string
enum:
- week
- month
example: month
in: query
name: resolution
description: 'Resolution '
required: true
requestBody:
content:
application/json:
schema:
description: ''
type: object
x-examples:
example-1:
enabled: true
limit: 200000
properties:
enabled:
type: boolean
description: Whether to enable or disable budget
limit:
type: number
description: The limit to be set. Required when mode is 'manual'; ignored when mode is 'auto' (the limit
is derived from the forecast).
example: 20000
mode:
type: string
description: 'Optional. How the budget limit is determined. Defaults to `manual` when omitted (backwards
compatible).
- `manual`: use the provided `limit`.
- `auto`: derive the limit automatically from the forecast at the start of each period using `margin_percent`.'
enum:
- manual
- auto
example: auto
margin_percent:
type: number
description: Optional. Percentage applied over the forecast when mode is 'auto'. Clamped server-side to
[-50, 50]. Defaults to 20 when omitted.
example: 20
required:
- enabled
examples:
Example - Manual limit:
value:
enabled: true
limit: 200000
Example - Auto with default margin:
value:
enabled: true
mode: auto
Example - Auto with custom margin:
value:
enabled: true
mode: auto
margin_percent: 10
tags:
- Budgets
/v3/locations/{locationId}/budgets/history:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
get:
summary: Get location budget history
operationId: get-v3-locations-locationId-budgets-history
tags:
- Budgets
description: 'Get past budget periods for a location as aligned time series. Each entry in `limit` and `consumption`
corresponds to one period between `from` and `to` at the given `resolution`.
Clients derive each period''s result by comparing `consumption[i]` to `limit[i]` (at or below the limit = within budget,
above = over budget).'
parameters:
- schema:
type: string
enum:
- elec
- gas
- district_heating
example: elec
in: query
name: fuel
description: Fuel to get budget history for.
required: true
- schema:
type: string
enum:
- energy
- cost
example: energy
in: query
name: unit
description: Unit to get budget history for.
required: true
- schema:
type: string
enum:
- week
- month
example: month
in: query
name: resolution
description: Resolution to get budget history for.
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/BudgetHistory'
examples:
Example:
value:
fuel: elec
unit: energy
resolution: month
from: '2020-01-01T00:00:00'
to: '2020-04-01T00:00:00'
limit:
- 200000
- 200000
- 180000
consumption:
- 187500
- 213000
- 165200
/v3/locations/{locationId}/temperature:
get:
summary: Get temperature
tags:
- Locations
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TemperatureData'
examples:
Example:
value:
temperature:
- 12
- 13
resolution: month
from: '2021-01-01T00:00:00'
to: '2021-03-01T00:00:00'
'400':
description: 'Bad Request
Possible errors
| *type* | *category* | *description* |
| --- | --- | --- |
| client_error | invalid_parameter | Timespan between ''from'' and ''to'' to large, max {maxTimeSpan} days for
the given resolution" |
| client_error | invalid_parameter | Parameter ''to'' missing |
| client_error | invalid_parameter | Parameter ''from'' missing |
| client_error | invalid_parameter | Parameter ''from'' cannot be larger than ''to'' |
| client_error | invalid_parameter | Invalid parameter ''resolution''. Should be one of: 6min, 30min, hour, day,
month |'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
description: Invalid parameter 'to'. Cannot be null
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
operationId: get-v3-location-temperature
parameters:
- schema:
type: string
enum:
- day
- month
example: day
in: query
name: resolution
description: Resolution of temperature
required: true
- schema:
type: string
example: '2021-01-01'
format: date
in: query
name: from
description: From which date to retrieve temperature
required: true
- schema:
type: string
format: date
example: '2021-01-01'
in: query
name: to
description: The 'to date' represents the end date of the time period. The value is exclusive, indicating that the
specified date is not included in the data range. It is rounded down to the closest start of the period for the
given resolution.
required: true
description: 'Get the outdoor temperature in Celsius for a location
Maximum time spans for resolutions
* day: 31 days
* month: 1 year'
parameters:
- schema:
type: string
name: locationId
in: path
required: true
description: Location id
/v3/locations/{locationId}/advice:
get:
tags:
- Advice
summary: Get advice
description: Get a list of advice sorted on relevance.
operationId: get-v3-location-advice
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
- name: limit
in: query
description: Number of advices to return
schema:
type: integer
format: int32
default: 10
- name: language_code
in: query
description: "Preferred language/region code (e.g., sv-SE).\r\nIf specified, the following properties will be translated\
\ if translations are present in our system:\r\n\r\n* title\r\n* content\r\n* link.text"
schema:
type: string
responses:
'200':
description: Success
headers:
Content-Language:
description: Preferred language/region code (e.g., sv-SE). Will be present in the response if the advice was
successfully translated.
schema:
type: string
description: Preferred language/region code (e.g., sv-SE). Will be present in the response if the advice was
successfully translated.
format: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Advice'
examples:
Energy tip:
value:
- id: 46e6hh85-037a-49ae-afc3-4eb51a44cded
relevance: 0.21
estimated_yearly_savings_energy: 360
estimated_yearly_savings:
- value: 360
unit: kwh
estimated_yearly_savings_cost: 78.84
estimated_yearly_savings_monetary:
- type: price_formula
cost: 78.84
cost_per_wh: 0.219
title: Replace old lamps with LED lighting
content: Don't wait to replace your incandescent or halogen bulbs with LED bulbs.
key: replace_old_lamps_with_led_lighting
status: none
link:
text: LED lighting
url: https://www.example.com/page.html
links:
- key: led-lighting-page
type: external-link
text: LED lighting
url: https://www.example.com/page.html
type: energy_tip
euc_keys:
- lighting
Upgrade:
value:
- id: b0990c22-1e54-4f00-a46c-bebae4a1edb3
relevance: 0.16
estimated_yearly_savings_energy: 650
estimated_yearly_savings:
- value: 650
unit: kwh
estimated_yearly_savings_cost: 117
estimated_yearly_savings_monetary:
- type: price_formula
cost: 117
cost_per_wh: 0.18
title: An old water heater should be replaced
content: Instant hot water taps are becoming popular.
key: old_water_heater_should_be_replaced
status: none
link:
text: Water heater
url: https://www.example.com/page.html
links:
- key: water-heater
type: external-link
text: Water heater
url: https://www.example.com/page.html
- key: water-heater-image
type: image
text: Water heater image
url: https://www.example.com/water-heater.jpg
type: upgrade
investment_cost:
fixed: 2149.99
roi:
- unit: months
from: 37
to: 42
financing_options:
- key: financing_key
type: financing
title: Available financing option
description: This helps to cover costs related to installing an energy saving upgrade for your home
url: https://www.example.com/page.html
euc_keys:
- water_heating
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
Advice not found:
value:
type: client_error
category: invalid_path
code: INVALID_PATH
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: No advices found
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Server error:
value:
type: internal_error
category: internal_error
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong. Please try again later. If problem remains, please contact support.
description: Error when getting location advice
/v3/locations/{locationId}/advice/{adviceId}:
patch:
tags:
- Advice
summary: Patch advice
description: Update advice status.
operationId: patch-v3-location-advice-adviceId
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
- name: adviceId
in: path
description: Advice id
required: true
schema:
type: string
requestBody:
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AdvicePatchInput'
examples:
Payload:
value:
- op: replace
path: /status
value: implemented
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Advice'
examples:
Energy tip:
value:
id: 46e6hh85-037a-49ae-afc3-4eb51a44cded
relevance: 0.21
estimated_yearly_savings_energy: 360
estimated_yearly_savings_cost: 78.84
estimated_yearly_savings_monetary:
- type: price_formula
cost: 78.84
cost_per_wh: 0.219
title: Replace old lamps with LED lighting
content: Don't wait to replace your incandescent or halogen bulbs with LED bulbs.
key: replace_old_lamps_with_led_lighting
status: none
link:
text: LED lighting
url: https://www.example.com/page.html
type: energy_tip
Upgrade:
value:
id: b0990c22-1e54-4f00-a46c-bebae4a1edb3
relevance: 0.16
estimated_yearly_savings_energy: 650
estimated_yearly_savings_cost: 117
estimated_yearly_savings_monetary:
- type: price_formula
cost: 117
cost_per_wh: 0.18
title: An old water heater should be replaced
content: Instant hot water taps are becoming popular.
key: old_water_heater_should_be_replaced
status: none
link:
text: Water heater
url: https://www.example.com/page.html
type: upgrade
investment_cost:
fixed: 2149.99
roi:
- unit: months
from: 37
to: 42
financing_options:
- key: financing_key
type: financing
title: Available financing option
description: This helps to cover costs related to installing an energy saving upgrade for your home
url: https://www.example.com/page.html
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Incorrect request body:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JP5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: PATCH_LIST_MISSING_OR_EMPTY
Only replace allowed:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JP5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: ONLY_OPERATION_REPLACE_ALLOWED
Only replacing status allowed:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JP5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: ONLY_REPLACING_STATUS_ALLOWED
Only string value allowed:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JP5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: STATUS_VALUE_MUST_BE_STRING
Invalid status supplied:
value:
type: client_error
category: invalid_parameter
code: INVALID_PARAMETER
transaction_id: 0HN1O72JP5P3C:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: INVALID_STATUS_SUPPLIED
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
type: internal_error
category: internal_error
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong. Please try again later. If problem remains, please contact support.
description: Error when patching location advice
/v3/locations/{locationId}/advice/estimated-savings-monetary-source:
get:
tags:
- Advice
summary: Get savings monetary sources
description: Get list of all monetary sources used for estimated savings
operationId: get-v3-location-advice-monetary-sources
parameters:
- name: locationId
in: path
description: Location id
required: true
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SavingMonetarySource'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find the location.
Monetary sources not found:
value:
type: client_error
category: invalid_path
code: INVALID_PATH
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong, please try again later. If problem remains, please contact support.
description: No monetary sources found
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Server error:
value:
type: internal_error
category: internal_error
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong. Please try again later. If problem remains, please contact support.
description: Error when getting estimated savings monetary sources
/v3/locations/{locationId}/anomalies:
get:
summary: Get anomalies
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Anomaly'
examples:
Example response:
value:
- type: daily_anomaly
fuel: elec
status:
code: ok
data_until: '2020-05-20T00:00:00'
result: none
- type: high_monthly_forecast
fuel: elec
status:
code: not_ok
action:
code: anomaly_awaiting_first_run
description: Anomaly is awaiting first run
'404':
description: 'Bad Request
Possible errors
| *type* | *category* | *description* |
| --- | --- | --- |
| client_error | entity_not_found | Could not find the location. |'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Error:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
description: Could not find the location.
message: 'Something went wrong, please try again later. If problem remains, please contact support (error:
1ad3a534117d4).'
transaction_id: 37c4ef86-d525-42c8-b65f-9b4cfcce0df6
operationId: get-v3-location-anomalies
parameters:
- schema:
type: string
enum:
- elec
- gas
- district_heating
example: elec
in: query
name: fuel
description: Filter for anomalies
- schema:
type: string
enum:
- daily_anomaly
- high_monthly_forecast
example: high_monthly_forecast
in: query
name: type
description: Filter for type of anomaly
description: 'Get anomalies for a location. The result of the last run will be in the ''status'' field. If ''status.code''
is "ok", values of the last run will be shown. If ''status.code'' is "not_ok", the anomaly have not been running or
something went wrong during the last run.
Anomalies can be sent out as a push notification in Eliq White Label Solution, or as a webhook event in API solution '
tags:
- Anomalies
parameters:
- schema:
type: string
name: locationId
in: path
required: true
description: Location id
/v3/health/heart_beat:
get:
summary: Get heart beat
responses:
'200':
description: OK
content:
application/json:
schema:
type: string
examples:
Ok response:
value: OK
operationId: get-v3-heartbeat
parameters: []
description: 'Endpoint to check whether the API is up or not. Successful response means the API is up and running, timeouts
or 5XX responses would indicate there are issues with the API '
tags:
- Health
parameters: []
/v3/users/{userId}/connections/web-portal-uri:
parameters:
- schema:
type: integer
name: userId
in: path
required: true
description: Eliq internal id of user.
- schema:
type: string
name: callback_uri
in: query
required: false
description: (Optional) A URL to be used for inserting a 'Back' button on Eliq Connect pages that redirects to this
callback URI. The URL must be HTML encoded.
- schema:
type: string
name: linkout_callback_uri
in: query
required: false
description: (Optional) A URI that specifies whether to open a specific app or URL instead of the Eliq Connect web view
when a linkout occurs. The URI must be HTML encoded.
get:
summary: Get Eliq Connect Web URI
tags:
- Eliq Connect
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EliqConnectUriResponse'
examples:
example-1:
value:
uri: https://connect.eliq.io/login?callbackUri={callback_uri}&linkOutCallbackUri={linkout_callback_uri}&ticketId={SSO_TICKET}
operationId: get-v3-users-userId-connections-web-portal-uri
description: 'Get link to Eliq Connect Web. The link includes {callback_uri} and {linkout_callback_uri} URI''s if provided
in request.
Link also includes a single-use token which is used to login the user to the web. The single-use token is valid for
15 minutes, and can only be used once.'
/v3/users/{userId}/connections:
parameters:
- schema:
type: integer
name: userId
in: path
required: true
description: Eliq internal id of user
get:
summary: Get User Connections
operationId: get-v3-users-userId-connections
description: 'Get all connections associated with a user.
### Connection statuses
| *Status* | *Description* |
| --- | --- |
| connected | The connection is connected, which means Eliq have access to manage connection entities for the connection.
|
| awaiting_confirmation | A connection request has been generated, but not yet approved. This may be due to that the
grid operator need to approve the request, or a user action is required. |
| disconnected | Eliq has lost access to the connection. User input is needed which is managed in Eliq Connect Web.
|'
tags:
- Eliq Connect
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Connection'
examples:
Example:
value:
- id: 20b4adc8-2ae9-4f99-b50d-af0933042f58
display_name: Connection display name
provider: provider_name
status: connected
/v3/Users/{userId}/sent_notifications:
get:
tags:
- Users
summary: Get user sent notifications.
description: "Retrieve notifications which were triggered for a user.\r\n \r\nNotifications can be filtered\
\ using the notification_types query parameter and paged using the limit/cursor parameters."
operationId: get-v3-users-userId-notifications
parameters:
- name: userId
in: path
description: User's id
required: true
schema:
type: integer
format: int32
- name: cursor
in: query
description: The paging cursor, which consists of the notification id, which you can use to page through the notifications.
If provided, endpoint will return notifications with ids greater than the value provided in the cursor.
schema:
type: integer
format: int32
- name: limit
in: query
description: Number of notifications to return in the response.
schema:
type: integer
format: int32
- name: notification_types
in: query
description: Comma separated notification types for filtering purposes. Can be null.
schema:
type: string
- name: language_code
in: query
description: Returns the notification content in the requested language (e.g. `en-GB`). Currently only Monthly Report
notifications are available in multiple languages.
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserNotification'
examples:
User notifications response:
value:
- id: 181093332
header: Negative electricity prices tomorrow!
content: Between 22:00-00:00 tomorrow the market electricity price is below zero!
read: false
created_date: '2025-11-03T16:33:31.797'
event:
created_date: '2025-11-03T16:33:31.797'
type: market_price_next_day_hour_price_alert
- id: 174322255
header: Low market prices tomorrow
content: Tomorrow the average market prices are low, averaging at 0,24 kr/kWh 🙂. The price will be at
its lowest 06:00-07:00 at 0,11 kr/kWh.
read: false
created_date: '2025-11-03T16:33:31.797'
event:
created_date: '2025-11-03T16:33:31.797'
type: market_price_next_day_avg_price_alert
- id: 164333124
header: Unusually high consumption
content: On Sunday your consumption was much higher than usual. Check if any appliances are left on or
not working properly.
read: false
created_date: '2025-11-03T16:33:31.797'
event:
created_date: '2025-11-03T16:33:31.797'
type: daily_anomaly
- id: 154325555
header: Your usage was higher than usual
content: Your usage was higher this month than last month. Check your usage breakdown to see what may
have caused this.
read: false
created_date: '2025-11-03T16:33:31.797'
event:
created_date: '2025-11-03T16:33:31.797'
type: monthly_anomaly
- id: 141256783
header: Weekly electricity budget exceeded
content: You've just gone over your electricity budget for this week. Get ready for a new challenge next
week.
read: false
created_date: '2025-11-03T16:33:31.797'
event:
created_date: '2025-11-03T16:33:31.797'
type: budget
- id: 134324576
header: Low credit alert
content: Your balance is low please top up now
read: false
created_date: '2025-11-03T16:33:31.797'
event:
created_date: '2025-11-03T16:33:31.797'
type: low_credit
- id: 123245636
header: Your consumption in October.
content: You consumed 10 % more than the previous month. Check out all your insights in the app.
read: false
created_date: '2025-11-03T16:33:31.797'
event:
created_date: '2025-11-03T16:33:31.797'
type: monthly_insight
- id: 116523765
header: Off supply warning
content: You are, or about to go off supply, please contact us if you need support
read: false
created_date: '2025-11-03T16:33:31.797'
event:
created_date: '2025-11-03T16:33:31.797'
type: off_supply_warning
- id: 101093332
header: Your consent is expiring soon
content: Your consent for data sharing will expire in 1 day(s). Please go to Account → Add/Remove Digital
Meter and click Renew Consent. If your consent expires, we won’t be able to provide you with insights.
read: false
created_date: '2025-11-03T16:33:31.797'
event:
created_date: '2025-11-03T16:33:31.797'
type: custom
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
User not found:
value:
type: client_error
category: user_not_found
code: USER_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find user with Id '1234567'
User's Location not found:
value:
type: client_error
category: entity_not_found
code: ENTITY_NOT_FOUND
transaction_id: 0HN18NIB8K5RV:00000001
description: Could not find the location.
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
value:
type: internal_error
category: internal_error
code: INTERNAL_ERROR
transaction_id: 0HN18NIB8K5RV:00000001
message: Something went wrong. Please try again later. If problem remains, please contact support.
description: Internal server error, please try again later. If problem remains, please contact support.
/v3/connections/{connectionId}/connection-entities:
parameters:
- schema:
type: string
name: connectionId
in: path
required: true
get:
summary: Get connection entities
tags:
- Eliq Connect
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ConnectionEntity'
examples:
Example:
value:
- id: 20b4adc8-2ae9-4f99-b50d-af0933042f58
display_name: Electricity meter
type: meter
location_id: 1234
meter:
fuel: elec
type: import
supply_start_date: '2021-01-01'
supply_end_date: '2022-01-01'
data_available_from_date: '2021-01-01'
data_available_to_date: '2022-06-05'
operationId: get-v3-connections-connectionId-connection-entities
description: "Get all (configured) entities associated with the connection. \n\nA connection may have several entities\
\ associated with it. In some scenarios, the configuration of these connection entities needs to be done by the end-user.\
\ This opens up the possibility that some entities are not configured in Eliq for a connection - only configured entities\
\ will be available in this endpoint. "
/v3/locations/{locationId}/connection-meta-data:
parameters:
- schema:
type: string
name: locationId
in: path
required: true
get:
summary: Get location connection meta data
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectionMetaData'
examples:
Status ok:
value:
status: ok
operationId: get-v3-locations-locationId-connection-meta-data
description: "Get connection meta data for a location. This endpoint enables connection logic to be handled on a location\
\ basis, rather than on a user basis. \n\n### Connection meta-data statuses\n\n| *Status* | *Description* |\n| ---\
\ | --- |\n| ok | The connection related to the location is all ok. Connection entities (at least one) have been configured\
\ and data is available. No actions needed by the user. |\n| not_connected | There are no connection related to the\
\ location. The user should be prompted with a message asking to setup a connection. Send the user of to Eliq Connect.\
\ |\n| action_required | A connection exist, but there is an action required by the user to make it work. The user\
\ should be prompted with a message saying he/she needs to fill in some more information, and send the user of to\
\ Eliq Connect. |\n| awaiting_confirmation | Connection created, but not yet validated by the provider. E.g. awaiting\
\ approval from DSO. At this stage, there are no actions that can be done to change the status. Prompt message that\
\ a process has been started. |\n| awaiting_first_data_sync | The connection has been configured and is ready to go.\
\ Energy data has though not been synced for the at least one of the connection entities. |"
tags:
- Eliq Connect
/v3/auth/user/token:
parameters: []
post:
summary: POST User token request
operationId: post-v3-auth-user-token
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
type: object
properties:
access_token:
type: string
token_type:
type: string
expires_in:
type: integer
x-examples:
Example 1:
access_token: JWT TOKEN
token_type: bearer
expires_in: 1800
examples:
example-1:
value:
access_token: JWT TOKEN
token_type: bearer
expires_in: 1800
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
type:
type: string
category:
type: string
transaction_id:
type: string
message:
type: string
description:
type: string
x-examples:
example-1:
type: client_error
category: user_not_found
code: USER_NOT_FOUND
transaction_id: 0HMLS31S9QPFP:00002B34
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find user with Id '12345'
examples:
example-1:
value:
type: client_error
category: user_not_found
code: USER_NOT_FOUND
transaction_id: 0HMLS31S9QPFP:00002B34
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find user with Id '12345'
description: "Use this endpoint to generate a user access token to be used in the Insights API. \n\nUse case: When adding\
\ Eliq insights as a web view inside your own app/web, you need to generate user access tokens in your backend, using\
\ your id and secret. This token is passed to your app that can use it to call the insights api directly. Token is\
\ valid for 30 minutes before it expires and a new token is needed."
tags:
- Authentication
requestBody:
content:
application/json:
schema:
type: object
properties:
grant_type:
type: string
user_id:
type: integer
client_id:
type: integer
client_secret:
type: string
requested_token_use:
type: string
x-examples:
Example 1:
grant_type: client_credentials
user_id: 12345
client_id: 1234567890
client_secret: my_secret_key
requested_token_use: on_behalf_of
examples:
Example 1:
value:
grant_type: client_credentials
client_id: 14934656510
client_secret: client_secret
requested_token_use: on_behalf_of
user_id: 6445967
description: ''
security: []
/v3/authentication/autologin/ticket:
parameters: []
get:
summary: GET Autologin ticket
operationId: get-v3-authentication-autologin-ticket
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
type: object
properties:
ticket_id:
type: string
x-examples:
Example 1:
ticket_id: 0ef862de-21f7-4a83-8151-b4be30f24dac
examples:
example-1:
value:
ticket_id: 0ef862de-21f7-4a83-8151-b4be30f24dac
'404':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
type:
type: string
category:
type: string
transaction_id:
type: string
message:
type: string
description:
type: string
x-examples:
example-1:
type: client_error
category: not_found
code: USER_NOT_FOUND
transaction_id: 0HMLS31S9QPFP:00002B34
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find user
examples:
example-1:
value:
type: client_error
category: not_found
code: USER_NOT_FOUND
transaction_id: 0HMLS31S9QPFP:00002B34
message: Something went wrong, please try again later. If problem remains, please contact support.
description: Could not find user
description: 'Use this endpoint to generate an autologin ticket.
Use case: When adding Eliq insights as a web view inside your app/web, you need to generate user access tokens in
your backend, using your id and secret (see /v3/auth/user/token). Using this token with this endpoint, you can generate
a ticketid. You add this ticketid when opening or redirecting a user to Eliq web app to allow the user to be auto
logged in, thus avoiding the login form for the user again.'
tags:
- Authentication
requestBody:
content: {}
description: ''
components:
schemas:
Address:
required:
- country_code
- street_address
type: object
properties:
street_address:
minLength: 1
type: string
description: Street address.
example: Riksgatan 1
postal_code:
type: string
description: Postal code.
nullable: true
example: 117 40
city:
type: string
description: City name.
nullable: true
example: Stockholm
country_code:
minLength: 1
type: string
description: Country code (ISO 3166-1 alpha-2).
example: SE
lon:
type: number
description: The geographical longitude coordinate.
format: double
nullable: true
example: 18.07187
lat:
type: number
description: The geographical latitude coordinate.
format: double
nullable: true
example: 59.3257
description: General address data including latitude and longitude.
User:
description: Get user information
type: object
x-examples:
example-1:
id: 1234
ext_ref: aec78361-f5b6-44cc-b9e6-935bd5053592
forname: John
surname: Doe
phone: '987643212'
email: john.doe@email.com
language_code: en-GB
examples:
- id: 1234
ext_ref: aec78361-f5b6-44cc-b9e6-935bd5053592
name: John
phone: '+46731234123'
email: john.doe@email.com
language_code: en-GB
properties:
id:
type: number
example: 1234
description: Eliq internal ID
client_id:
type: number
example: 123456789
description: Eliq internal Client ID
ext_ref:
type: string
minLength: 1
description: Eliq external reference. Client's user ID (ID in data management API)
example: aec78361-f5b6-44cc-b9e6-935bd5053592
name:
type: string
example: John
description: Users name
forename:
type: string
deprecated: true
description: Users forename
surname:
type: string
deprecated: true
description: Users surname
phone:
type: string
example: '+46731234123'
description: User phone number
email:
type: string
example: john.doe@email.com
format: email
description: User email
language_code:
type: string
minLength: 1
example: en-GB
description: Users selected language code. Translations shown in app and messages will be sent in this language
required:
- id
- ext_ref
- language_code
Consent:
type: object
x-examples:
example-1:
version_id: f2283b35-c2c7-4a4f-90f4-49e493c69d7
name: terms_and_conditions
type: login_consent
given_consent: false
is_updated: true
is_mandatory: true
timestamp: '2022-06-28T13:54:43.369558Z'
language_code: en-GB
data:
url: https://your-website-url.com/terms-and-conditions
properties:
version_id:
type: string
name:
type: string
type:
type: string
given_consent:
type: boolean
is_updated:
type: boolean
is_mandatory:
type: boolean
timestamp:
type: string
language_code:
type: string
data:
type: object
properties:
url:
type: string
description: Nullable, such as the terms and conditions page on a website, etc.
examples: []
Location:
required:
- address
- ext_ref
- fuels
- id
- meters
- timezone
type: object
properties:
id:
type: integer
description: ID
format: int32
example: 150
name:
type: string
description: Name
nullable: true
example: My Location
ext_ref:
minLength: 1
type: string
description: External (utility) reference.
timezone:
minLength: 1
type: string
description: Iana timezone
example: Europe/Berlin
address:
$ref: '#/components/schemas/Address'
fuels:
$ref: '#/components/schemas/LocationFuels'
meters:
type: array
items:
$ref: '#/components/schemas/LocationMeter'
description: Meters present at a location.
description: Location data.
LocationFuel:
type: object
properties:
import:
$ref: '#/components/schemas/LocationFuelItem'
export:
$ref: '#/components/schemas/LocationFuelItem'
consumption:
$ref: '#/components/schemas/LocationFuelItem'
production:
$ref: '#/components/schemas/LocationFuelItem'
description: Fuel data
LocationFuelItem:
required:
- resolution
- source
type: object
properties:
resolution:
minLength: 1
type: string
description: Energy data sampling resolution.
example: 15min
data_from:
type: string
description: Available from date.
format: date-time
nullable: true
example: '2021-01-01T00:00:00'
data_to:
type: string
description: Available to date.
format: date-time
nullable: true
example: '2021-03-01T00:00:00'
source:
$ref: '#/components/schemas/FuelSource'
sync_status:
$ref: '#/components/schemas/SyncStatus'
description: General data about a fuel item.
SyncStatus:
enum:
- ok
- waiting_for_data
type: string
description: Data synchronization status.
LocationFuels:
type: object
properties:
elec:
$ref: '#/components/schemas/LocationFuel'
gas:
$ref: '#/components/schemas/LocationFuel'
district_heating:
$ref: '#/components/schemas/LocationFuel'
description: Available fuel data
LocationMeter:
required:
- direction
- fuel_type
- id
- is_sub_meter
- user_setup_completed
type: object
properties:
id:
minLength: 1
type: string
description: ID.
example: e7c8938fe06a44a7923ed89da281705e
model:
minLength: 1
type: string
description: Model.
example: Standard Energy V1
user_setup_completed:
type: boolean
description: A true/false value depicting whether user setup is complete.
example: true
name_user:
type: string
description: Name given by the user.
nullable: true
example: MyName
name_suggested:
type: string
description: Name suggested.
nullable: true
example: Standard Energy V1
fuel_type:
minLength: 1
type: string
description: Type of fuel sampled.
example: elec
direction:
minLength: 1
type: string
description: Fuel direction.
example: import
is_sub_meter:
type: boolean
description: A true/false values depicting whether this is a sub-meter.
example: false
category_user:
type: string
description: Category which was provided by the user.
nullable: true
example: My Category
category_suggested:
type: string
description: The category suggested.
nullable: true
example: other
supply_start_date:
type: string
description: Supply start date.
format: date-time
nullable: true
example: '2026-01-01T00:00:00'
supply_end_date:
type: string
description: Supply end date.
format: date-time
nullable: true
example: '2026-12-31T00:00:00'
description: Meter data.
NotificationSettingsResponse:
type: object
properties:
notification_name:
type: string
description: The name of the notification
nullable: true
notification_type_id:
type: integer
description: Unique notification id
format: int32
notification_category:
type: string
description: Notification category
nullable: true
send_event_notification:
type: boolean
description: Specifies whether the notification should be sent (I.E. is the notification enabled).
nullable: true
send_email:
type: boolean
description: Specifies whether notification should be delivered by email.
nullable: true
send_push:
type: boolean
description: Specifies whether a push notification is delivered to the user's smartphone.
nullable: true
send_text:
type: boolean
description: Specifies whether the notification is sent via an SMS text message.
nullable: true
send_webhook:
type: boolean
description: Specifies whether the notification is sent via a webhook.
nullable: true
Homeprofile:
description: "The home profile is describing the properties of a location, such as house type, heating system and other\
\ appliances. This information is later used in Eliq analytics. \n\nThe home profile root objects properties may be\
\ different in different countries (could be parsed as a dictionary). Hence, the result shown for the locations country\
\ may not match with the example provided below."
type: object
x-examples:
example-1:
properties: []
cooking:
- key: gas_stoves
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of gas hobs
- key: gas_ovens
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of gas ovens
- key: electric_stoves
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of electric hobs
- key: electric_ovens
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of electric ovens
- key: microwaves
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of microwaves
examples:
- properties:
- key: house_type
data_type: single_select
is_required: true
possible_values:
- value: apartment
developer_description: Type of dwelling
- value: house
developer_description: House
- value: semi_detached
developer_description: House - semi detached
- value: holiday_home
developer_description: Holiday home / summer house
- value: other
developer_description: Other
tags:
- required_for_euc_to_work
- required_for_sh_to_work
developer_description: Type of dwelling
- key: living_area
data_type: number
is_required: true
limits:
min: 0
max: 400
step: 1
tags:
- required_for_sh_to_work
developer_description: Size of heated living space in square meters
- key: persons
data_type: number
is_required: true
limits:
min: 0
max: 10
step: 1
tags: []
developer_description: Number of people living in the home
- key: heating_type_primary
data_type: single_select
is_required: true
possible_values:
- value: district_heating
developer_description: District heating
- value: radiators
developer_description: Electric radiators
- value: air_air_pump
developer_description: Air-air heat pump
- value: air_water_pump
developer_description: Air-water heat pump
- value: water_pan
developer_description: Storage water heater
- value: exhaust_air_heat_pump
developer_description: Exhaust air heat pump
- value: floor_heat
developer_description: Electric floor heat
- value: other
developer_description: Other
tags:
- required_for_sh_to_work
developer_description: Primary way of heating the location
- key: heating_type_other
data_type: multiple_select
is_required: false
possible_values:
- value: district_heating
developer_description: District heating
- value: radiators
developer_description: Electric radiators
- value: air_air_pump
developer_description: Air-air heat pump
- value: air_water_pump
developer_description: Air-water heat pump
- value: water_pan
developer_description: Storage water heater
- value: exhaust_air_heat_pump
developer_description: Exhaust air heat pump
- value: floor_heat
developer_description: Electric floor heat
- value: other
developer_description: Other
tags: []
developer_description: Non-primary ways of heating the location
- key: hotwater_type
data_type: single_select
is_required: false
possible_values:
- value: hot_water_tank
developer_description: Storage water heater
- value: air_water_pump
developer_description: Air-water heat pump
- value: exhaust_air_heat_pump
developer_description: Exhaust air heat pump
- value: district_heating
developer_description: District heating
- value: other
developer_description: Other
tags: []
developer_description: Primary way of heating water
cooking:
- key: gas_stoves
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of gas hobs
- key: gas_ovens
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of gas ovens
- key: electric_stoves
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of electric hobs
- key: electric_ovens
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of electric ovens
- key: microwaves
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of microwaves
appliances:
- key: dishwashers
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of dishwashers
- key: washing_machines
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of washing machines
- key: dryers
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of electric dryers
fridges_and_freezers:
- key: fridges
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of fridges
- key: freezers
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of freezers
- key: fridge_freezers
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of combined fridge-freezer units
title: ''
properties:
properties:
type: array
items:
$ref: '#/components/schemas/HomeProfileOption'
cooking:
type: array
uniqueItems: false
items:
$ref: '#/components/schemas/HomeProfileOption'
appliances:
type: array
items:
$ref: '#/components/schemas/HomeProfileOption'
fridges_and_freezers:
type: array
items:
$ref: '#/components/schemas/HomeProfileOption'
extras:
type: array
items:
$ref: '#/components/schemas/HomeProfileOption'
Fuel:
enum:
- elec
- gas
- district_heating
type: string
description: Fuel type
FuelSource:
enum:
- smart_meter
- non_smart_meter
- load_curve_estimation
- pv_disagg
type: string
description: Source of fuel data.
LimitRange:
required:
- max
- min
type: object
properties:
min:
type: number
description: Minimum number in the range. For example, if key is 'living_area' and min is 150, it means minimum
150 square meters.
format: double
example: 150
max:
type: number
description: Maximum number in the range. For example, if key is 'living_area' and max is 200, it means maximum
200 square meters.
format: double
example: 200
description: Available if type is 'limit_range'. Contains minimum and maximum values for the given key.
HomeProfileOption:
description: 'A home profile option is the option that can be set. A home profile option may have different data types,
''single_select'', ''multiple_select'' or ''number''. The available properties in the object will change depending
on this data type, which is described more in the model. '
type: object
x-examples:
example-1:
key: house_type
data_type: single_select
is_required: true
possible_values:
- value: apartment
developer_description: Apartment
- value: house
developer_description: House
- value: semi_detached
developer_description: House - semi detached
- value: holiday_home
developer_description: Holiday home / summer house
- value: townhouse
developer_description: House - townhouse
- value: other
developer_description: Other
tags:
- required_for_euc_to_work
- required_for_sh_to_work
developer_description: Type of dwelling
examples:
- key: house_type
data_type: single_select
is_required: false
value: apartment
possible_values:
- value: house
developer_description: House
- value: apartment
developer_description: Apartment
tags:
- required_for_euc_to_work
- required_for_sh_to_work
developer_description: Type of dwelling
- key: electric_ovens
data_type: number
is_required: false
limits:
min: 0
max: 5
step: 1
tags: []
developer_description: Number of electric ovens
title: HomeprofileOptions
properties:
key:
type: string
minLength: 1
example: house_type
description: 'Key of home profile. A home profile option is identified by key, hence, it is the value for the key
which are updated when running patch
'
data_type:
type: string
minLength: 1
enum:
- single_select
- multiple_select
- number
example: single_select
description: 'The data type of the home profile option. Eg. if ''single_select'', there will be several different
choices, where one value should be taken (eg. house type).
'
value:
type:
- number
- string
- array
example: apartment
description: Selected value for the location. A number if data_type is ‘number’, string if ‘data_type’ is ‘single_select’
and list of strings if data_type is ‘multiple_select’. Null if no value has been set.
items:
type: string
possible_values:
type: array
uniqueItems: true
minItems: 1
description: 'Only present if data_type is ''single_select'' or ''multiple_select''. The possible values contains
all the possible options that can be set. '
items:
type: object
properties:
value:
type: string
minLength: 1
example: apartment
description: Value for the possible value. To be provided in patch
developer_description:
type: string
description: A string that describes this value. Not meant to be displayed to the end user.
example: Air-air heat pump
name:
type: string
description: DEPRECATED!
deprecated: true
type:
type: string
description: DEPRECATED!
deprecated: true
required:
- value
limits:
type: object
description: 'Only present if data_type is ''number''. The limit object contains the minimum and maximum value that
can be selected, and with what step. '
properties:
min:
type: number
example: 0
description: Minimum number. Usually 0
max:
type: number
example: 5
description: Maximum number
step:
type: number
example: 1
description: Minimum step. Eg. if home profile option is to select number of freezers, the user would increase/decrease
the amount of freezers with 1.
dependent_properties:
type: array
uniqueItems: true
minItems: 1
description: Only present if a dependent property has been configured. Used to indicated if an option should be
shown or not given previous choices.
items:
type: object
properties:
property:
type: string
example: properties/house_type
description: The name of the dependent property.
accepted_values:
type: array
uniqueItems: true
minItems: 1
description: The list of the values that are accepted for the dependent property.
items:
type: string
tags:
type: array
uniqueItems: true
description: An array of tags. Currently used tags are `required_for_euc_to_work` and `required_for_sh_to_work`.
items:
type: string
example:
- required_for_euc_to_work
- required_for_sh_to_work
developer_description:
type: string
description: A string that describes this option. Not meant to be displayed to the end user.
example: Size of heated living space in square meters
name:
type: string
description: DEPRECATED!
deprecated: true
is_required:
type: boolean
default: false
description: DEPRECATED! Use tags instead. Whether the option is a field that is required for similar homes and
breakdown.
deprecated: true
required:
- key
- data_type
MarketPriceElementDto:
required:
- period_start
- price_kwh
type: object
properties:
period_start:
type: string
description: Market price period start
price_kwh:
type: number
description: Market price during period per kwh
format: double
MarketPriceResolution:
enum:
- day
- month
type: string
PriceLevel:
enum:
- low
- medium
- high
type: string
MarketPriceSummaryElementDto:
required:
- avg_price_kwh
- highest_price_kwh
- lowest_price_kwh
- period_start
- price_level
- values
type: object
properties:
period_start:
type: string
description: The start of the daily/monthly period
avg_price_kwh:
type: number
description: Average daily/monthly price per kwh
format: double
price_level:
$ref: '#/components/schemas/PriceLevel'
lowest_price_kwh:
$ref: '#/components/schemas/MarketPriceElementDto'
highest_price_kwh:
$ref: '#/components/schemas/MarketPriceElementDto'
values:
type: array
items:
$ref: '#/components/schemas/MarketPriceElementDto'
description: All summary period prices
MarketPriceSummaryDto:
required:
- currency
- from
- resolution
- to
- values
type: object
properties:
resolution:
$ref: '#/components/schemas/MarketPriceResolution'
currency:
minLength: 1
type: string
description: Currency of the price_kwh
from:
type: string
description: From date
to:
type: string
description: To date exclusive
values:
type: array
items:
$ref: '#/components/schemas/MarketPriceSummaryElementDto'
description: Values in the specified resolution. The size always matches the number of periods between from and
to in the given resolution. Collection may contain null entries for periods with no data.
PatchDocument:
type: array
description: Patch document used in patch operations
minItems: 1
uniqueItems: true
x-examples:
example-1:
- op: replace
path: properties/house_type
value: apartment
- op: replace
path: properties/persons
value: 2
- op: replace
path: properties/heating_type_primary
value: radiators
- op: replace
path: fridges_and_freezers/fridges
value: 1
title: ''
items:
type: object
properties:
op:
type: string
minLength: 1
example: replace
enum:
- add
- replace
- remove
description: Operation to execute
path:
type: string
minLength: 1
description: Path to property to update
example: user/name
value:
type:
- string
- number
minLength: 1
example: John
description: Value to set
required:
- op
- path
- value
Breakdown:
description: 'The breakdown model contains information about the location breakdown (aka. Energy usage categories (EUC)). '
type: object
x-examples:
example-1:
accuracy: medium
total_value: 100450
from: '2019-10-01T00:00:00'
to: '2019-11-01T00:00:00'
unit: energy
breakdown:
- category: cooking
value: 25047
- category: fridge_freezer
value: 35623
- category: washing
value: 18188
- category: cleaning
value: 4223
- category: always_on
value: 6365
- category: lightning
value: 11000
title: Breakdown result
properties:
accuracy:
type: string
minLength: 1
enum:
- LOW
- MEDIUM
- HIGH
example: MEDIUM
description: How certain we are of the result. Can be either 'low', 'medium' or 'high'. Could be used to let user
know the accuracy of the breakdown, or whether to show it the application or not.
total_value:
type: number
description: The total usage during the period
example: 100450
from:
type: string
minLength: 1
format: date-time
example: '2019-10-01T00:00:00'
description: Start date of the consumption period, matches with the value passed in query parameters of the request.
to:
type: string
minLength: 1
example: '2019-11-01T00:00:00'
format: date-time
description: 'End date of the consumption period, matches with the value passed in query parameters of the request.
'
unit:
type: string
minLength: 1
enum:
- energy
- cost
example: energy
description: Can be ‘cost’ or ‘energy’. Matches with the value passed in query parameters of the request if provided,
otherwise default.
breakdown:
type: array
uniqueItems: true
minItems: 1
items:
$ref: '#/components/schemas/BreakdownItem'
required:
- accuracy
- total_value
- from
- to
- unit
- breakdown
examples:
- accuracy: medium
total_value: 100450
from: '2019-10-01T00:00:00'
to: '2019-11-01T00:00:00'
unit: energy
breakdown:
- category: cooking
value: 25047
- category: fridge_freezer
value: 35623
- category: washing
value: 18188
- category: cleaning
value: 4223
- category: always_on
value: 6365
- category: lightning
value: 11000
BreakdownItem:
description: Breakdown item contain usage information for a specific usage category
type: object
x-examples:
example-1:
category: cooking
value: 25047
properties:
category:
type: string
minLength: 1
example: cooking
description: The breakdown category, eg. 'cooking' or 'always_on'
value:
type: number
example: 25047
description: The amount of usage for the category (either in energy or cost)
required:
- category
- value
examples:
- category: cooking
value: 25047
ResultWrapper:
description: Responses from the similar homes and breakdown endpoint are wrapped in an object called result wrapper.
The result status will contain information about the response and whether it is an ok or not ok result. The object
also contains information of what needs to be done to get an ok response, for example enter more properties to the
home profile.
type: object
x-examples:
breakdown-example:
result:
accuracy: medium
total_value: 100450
from: '2019-10-01T00:00:00'
to: '2019-11-01T00:00:00'
unit: energy
breakdown:
- category: cooking
value: 25047
- category: fridge_freezer
value: 35623
- category: washing
value: 18188
- category: cleaning
value: 4223
- category: always_on
value: 6365
- category: lightning
value: 11000
result_status:
code: ok
title: Result wrapper
examples:
- result:
accuracy: medium
total_value: 100450
from: '2019-10-01T00:00:00'
to: '2019-11-01T00:00:00'
unit: energy
breakdown:
- category: cooking
value: 25047
- category: fridge_freezer
value: 35623
- category: washing
value: 18188
- category: cleaning
value: 4223
- category: always_on
value: 6365
- category: lightning
value: 11000
result_status:
code: ok
action: null
properties:
result:
oneOf:
- $ref: '#/components/schemas/Breakdown'
- $ref: '#/components/schemas/SimilarHomesGroup'
- $ref: '#/components/schemas/TimeseriesData'
- $ref: '#/components/schemas/SimilarHomesReport'
result_status:
type: object
description: Contains information about the result, and whether it was successful or not
required:
- code
properties:
code:
type: string
minLength: 1
description: Either "ok" or "not_ok". Used to decide whether there is a result or not.
enum:
- ok
- not_ok
example: ok
action:
type:
- object
- 'null'
description: Available in cases where there are actions that can be done to make the result become ok, such
as entering info in home profile options.
properties:
code:
type: string
description: 'A code for the action that should be taken. Please refer to documentation of specific endpoint
for more information. '
description:
type: string
description: A description of the action that should be taken.
required:
- result_status
TimeseriesData:
description: Model containing time series data. Different parameters will be available depending on the data requested,
see below for more information
type: object
x-examples:
example-1:
consumption:
- 446.37
- null
import:
- 446.37
- null
export:
- 446.37
- null
production:
- 446.37
- null
fuel: elec
unit: energy
resolution: month
from: '2019-01-01T00:00:00'
to: '2019-03-01T00:00:00'
examples:
- consumption:
- 446.37
- null
fuel: elec
unit: energy
resolution: month
from: '2021-01-01T00:00:00'
to: '2021-03-01T00:00:00'
title: Time series data
properties:
consumption:
type: array
description: Available if consumption has been queried. Will always contain the exact amount of elements as there
are time frames between ‘to’ and ‘from’ with the given ‘resolution’. Values inside the array can be null if no
energy data exists (One day always contains 24 values). The consumption values are floating-point numbers.
items:
type:
- number
- 'null'
import:
type: array
description: Available if import has been queried. Will always contain the exact amount of elements as there are
time frames between ‘to’ and ‘from’ with the given ‘resolution’. Values inside the array can be null if no energy
data exists (One day always contains 24 values). The import values are floating-point numbers.
items:
type:
- number
- 'null'
export:
type: array
description: Available if export has been queried. Will always contain the exact amount of elements as there are
time frames between ‘to’ and ‘from’ with the given ‘resolution’. Values inside the array can be null if no energy
data exists (One day always contains 24 values). The export values are floating-point numbers.
items:
type:
- number
- 'null'
production:
type: array
description: Available if production has been queried. Will always contain the exact amount of elements as there
are time frames between ‘to’ and ‘from’ with the given ‘resolution’. Values inside the array can be null if no
energy data exists (One day always contains 24 values). The production values are floating-point numbers.
items:
type:
- number
- 'null'
forecast:
type: array
description: Available if forecast has been queried. Will always contain the exact amount of elements as there are
time frames between ‘to’ and ‘from’ with the given ‘resolution’. Values inside the array can be null if no energy
data exists. The forecast values are floating-point numbers.
items:
type:
- number
- 'null'
fuel:
type: string
minLength: 1
description: Can be ‘elec’, ‘gas’ or ‘district_heating’. Matches with the value passed in query parameters of the
request if provided
enum:
- elec
- gas
- district_heating
example: elec
unit:
type: string
minLength: 1
description: 'Can be ‘cost’, ‘energy’ or ''m3''. Matches with the value passed in query parameters of the request
if provided, otherwise default.
Only return m3 if the unit is available.'
enum:
- energy
- cost
example: energy
resolution:
type: string
minLength: 1
description: Can be '6min','15min', '30min', 'hour', 'day' or 'month'. Matches with the value passed in query parameters
of the request.
enum:
- 6min
- 15min
- 30min
- hour
- day
- month
from:
type: string
minLength: 1
description: From date
example: '2021-01-01T00:00:00'
to:
type: string
minLength: 1
description: To date
example: '2021-02-01T00:00:00'
required:
- fuel
- unit
- resolution
- from
- to
MeterDataResult:
description: Model containing meter time series data result. Different parameters will be available depending on the
data requested, see below for more information
type: object
title: MeterDataResult
properties:
meter:
type: array
description: Available if consumption has been queried. Will always contain the exact amount of elements as there
are time frames between ‘to’ and ‘from’ with the given ‘resolution’. Values inside the array can be null if no
energy data exists (One day always contains 24 values). The consumption values are floating-point numbers.
items:
type:
- object
- 'null'
properties:
direction:
type: string
data:
type: array
items:
type:
- number
- 'null'
required:
- direction
- data
fuel:
type: string
description: Can be ‘elec’, ‘gas’ or ‘district_heating’. Matches with the value passed in query parameters of the
request if provided
example: elec
enum:
- elec
- gas
unit:
type: string
description: 'Can be ‘cost’, ‘energy’ or ''m3''. Matches with the value passed in query parameters of the request
if provided, otherwise default.
Only return m3 if the unit is available.'
example: energy
enum:
- energy
- cost
resolution:
type: string
description: Can be '6min','15min', '30min', 'hour', 'day' or 'month'. Matches with the value passed in query parameters
of the request.
example: day
enum:
- 6min
- 15min
- 30min
- hour
- day
- month
from:
type: string
description: From date
example: '2021-01-01T00:00:00'
minLength: 1
to:
type: string
description: To date
example: '2021-02-01T00:00:00'
minLength: 1
required:
- meter
- fuel
- unit
- resolution
- from
- to
YearlyEstimate:
required:
- fuel
- source
- type
- year
type: object
properties:
fuel:
$ref: '#/components/schemas/Fuel'
type:
$ref: '#/components/schemas/Direction'
year:
type: integer
description: Year
format: int32
source:
minLength: 1
type: string
description: Source of the entry, e.g., user, system
energy_wh:
type: integer
description: Energy in Wh
format: int32
nullable: true
description: Model containing yearly estimate for a location
TemperatureData:
description: Model containing time series temperature data. Different parameters will be available depending on the
data requested, see below for more information
type: object
x-examples:
example-1:
consumption:
- 446.37
- null
import:
- 446.37
- null
export:
- 446.37
- null
production:
- 446.37
- null
fuel: elec
unit: energy
resolution: month
from: '2019-01-01T00:00:00'
to: '2019-03-01T00:00:00'
examples:
- temperature:
- 12
- 13
resolution: month
from: '2021-01-01T00:00:00'
to: '2021-03-01T00:00:00'
title: Temperature data
properties:
temperature:
type: array
items:
type:
- number
- 'null'
resolution:
type: string
minLength: 1
description: Can be 'day' or 'month'. Matches with the value passed in query parameters of the request.
enum:
- day
- month
from:
type: string
minLength: 1
description: From date
example: '2021-01-01T00:00:00'
to:
type: string
minLength: 1
description: To date
example: '2021-02-01T00:00:00'
required:
- resolution
- from
- to
SimilarHomesGroup:
required:
- contributors
- filters
type: object
properties:
filters:
minItems: 1
type: array
items:
$ref: '#/components/schemas/SimilarHomesGroupFilter'
description: A list of filters that was used when finding a similar homes group.
contributors:
type: integer
description: Number of contributors in the group.
format: int32
example: 1
description: Description of similar homes that a location is compared to.
SimilarHomesGroupFilter:
required:
- description
- key
- type
type: object
properties:
key:
minLength: 1
type: string
description: This key refers to keys in home profile, for example 'house_type', 'heating_type_primary' or 'living_area'.
example: house_type
description:
minLength: 1
type: string
description: Description for the filter.
example: House
type:
$ref: '#/components/schemas/SimilarHomesGroupFilterType'
limit_range:
$ref: '#/components/schemas/LimitRange'
limit_values:
type: array
items:
type: string
description: Available if type is 'limit_values'. For example, for key 'house_type', this would include the list
of house types the location is compared with.
nullable: true
description: Similar homes group filter.
SimilarHomesGroupFilterType:
enum:
- limit_values
- limit_range
type: string
description: Describes whether 'limit_values' or 'limit_range' should be used.
SimilarHomesGroupResultModel:
required:
- result_status
type: object
properties:
result:
$ref: '#/components/schemas/SimilarHomesGroup'
result_status:
$ref: '#/components/schemas/SimilarHomesResultStatus'
description: Model containing similar homes group result.
SimilarHomesResultStatus:
required:
- code
type: object
properties:
code:
$ref: '#/components/schemas/SimilarHomesResultStatusCode'
action:
$ref: '#/components/schemas/SimilarHomesResultStatusAction'
description: Contains information about the result, and whether it was successful or not.
SimilarHomesResultStatusAction:
type: object
properties:
code:
type: string
description: A code for the action that should be taken. Please refer to documentation of specific endpoint for
more information.
nullable: true
description:
type: string
description: A description of the action that should be taken.
nullable: true
description: Available in cases where there are actions that can be done to make the result successful, such as entering
information in the home profile options.
MeterPriceFormula:
type: object
properties:
meter_id:
type: string
description: Meter id. Applicable only for price formulas set on a meter. Location level formulas which can be applied
to multiple meters will have this field empty.
nullable: true
fuel:
$ref: '#/components/schemas/Fuel'
direction:
$ref: '#/components/schemas/PriceFormulaDirection'
from:
type: string
description: Price formula start date.
format: date-time
nullable: true
to:
type: string
description: Price formula end date.
format: date-time
nullable: true
currency_code:
type: string
description: Price formula currency code.
nullable: true
elements_array:
type: array
items:
$ref: '#/components/schemas/Element'
description: List of elements
nullable: true
source:
$ref: '#/components/schemas/Source'
Source:
enum:
- client
- user
type: string
description: Price formula source
Element:
required:
- name
- type
type: object
properties:
name:
minLength: 1
type: string
description: Name of the price formula element
type:
$ref: '#/components/schemas/PriceElementType'
charge:
$ref: '#/components/schemas/Charge'
unit_rate:
$ref: '#/components/schemas/UnitRate'
PriceElementType:
enum:
- charge
- unit_rate
type: string
description: Formula element type.
PriceFormulaDirection:
enum:
- import
- export
type: string
description: Direction type
Charge:
required:
- resolution
type: object
properties:
resolution:
$ref: '#/components/schemas/ChargeResolution'
charge:
type: number
description: Charge amount
format: double
nullable: true
description: Object containing the charge. Available when type is set to charge.
ChargeResolution:
enum:
- day
- month
type: string
description: Charge resolution
UnitRate:
required:
- type
type: object
properties:
type:
$ref: '#/components/schemas/UnitRateType'
fixed:
$ref: '#/components/schemas/Fixed'
tou:
$ref: '#/components/schemas/Tou'
nordpool:
$ref: '#/components/schemas/Nordpool'
block:
$ref: '#/components/schemas/Block'
spot_price:
$ref: '#/components/schemas/SpotPrice'
weekdays:
type: array
items:
type: string
nullable: true
description: Object containing the unit rate. Available when type is set to unit_rate.
UnitRateType:
enum:
- fixed
- tou
- nordpool
- block
- spot_price
type: string
description: Unit rate type
Fixed:
required:
- unit_rate
type: object
properties:
unit_rate:
type: number
description: Fixed unit rate
format: double
description: Object containing spot price information. Available if unit rate type is set to 'fixed'
Nordpool:
required:
- region
- resolution
type: object
properties:
region:
minLength: 1
type: string
description: Region
resolution:
$ref: '#/components/schemas/NordpoolResolution'
multiplier:
type: number
description: Multiplier. All Nordpool is by default without VAT. Specify VAT to be used, value 1.25 would result
in 25% tax.
format: double
nullable: true
description: Object containing Nordpool information. Available if unit rate type is set to nordpool
NordpoolResolution:
enum:
- hour
type: string
Tou:
type: object
properties:
register_id:
type: string
nullable: true
unit_rate:
type: number
format: double
nullable: true
intervals:
type: array
items:
$ref: '#/components/schemas/Interval'
nullable: true
skip_intervals:
type: boolean
nullable: true
Interval:
type: object
properties:
from_minute:
type: integer
format: int64
nullable: true
to_minute:
type: integer
format: int64
nullable: true
Block:
type: object
properties:
resolution:
$ref: '#/components/schemas/BlockResolution'
register_id:
type: string
nullable: true
unit_rate:
type: number
format: double
from_kwh:
type: integer
format: int64
nullable: true
to_kwh:
type: integer
format: int64
nullable: true
from_m3:
type: integer
format: int64
nullable: true
to_m3:
type: integer
format: int64
nullable: true
BlockResolution:
enum:
- day
- year
type: string
SpotPrice:
type: object
properties:
provider:
$ref: '#/components/schemas/SpotPriceProvider'
region:
type: string
nullable: true
resolution:
$ref: '#/components/schemas/SpotPriceResolution'
multiplier:
type: number
format: double
nullable: true
SpotPriceProvider:
enum:
- nordpool
- epex
type: string
SpotPriceResolution:
enum:
- hour
- 15min
type: string
TimeSeriesData:
type: object
properties:
consumption:
type: array
items:
type: number
format: double
nullable: true
nullable: true
production:
type: array
items:
type: number
format: double
nullable: true
nullable: true
import:
type: array
items:
type: number
format: double
nullable: true
nullable: true
export:
type: array
items:
type: number
format: double
nullable: true
nullable: true
price:
type: array
items:
type: number
format: double
nullable: true
nullable: true
co2emission:
$ref: '#/components/schemas/Co2Emission'
resolution:
type: string
nullable: true
fuel:
$ref: '#/components/schemas/FuelType'
unit:
$ref: '#/components/schemas/UnitType'
from:
type: string
format: date-time
nullable: true
to:
type: string
format: date-time
nullable: true
estimated_from:
type: string
format: date-time
nullable: true
is_ondemand:
type: boolean
nullable: true
Co2Emission:
type: object
properties:
co2_in_kg:
type: number
format: double
nullable: true
car_gas_emission_in_km:
type: number
format: double
nullable: true
FuelType:
enum:
- none
- elec
- gas
- district_heating
type: string
UnitType:
enum:
- none
- cost
- monetary_unit
- energy
- temperature
- m3
type: string
SimilarHomesResultStatusCode:
enum:
- ok
- not_ok
type: string
description: Indicating whether there is a result or not.
Budget:
description: Model for budget. Contains information about the budget, and when it last was run.
type: object
x-examples:
example-1:
enabled: true
type: budget_weekly
fuel: elec
resolution: week
unit: energy
limit: 200000
status:
code: ok
result: currently_below
value: 16370
forecast: 120000
period_start: '2020-05-11T00:00:00'
data_until: '2020-05-13T00:00:00'
examples:
- enabled: false
type: budget_monthly
fuel: elec
resolution: month
unit: energy
- enabled: true
type: budget_weekly
fuel: elec
resolution: week
unit: energy
limit: 200000
status:
code: not_ok
action:
code: budget_awaiting_first_run
description: Budget is awaiting first run
- enabled: true
type: budget_weekly
fuel: elec
resolution: week
unit: energy
limit: 200000
status:
code: ok
result: currently_below
value: 16370
forecast: 120000
period_start: '2020-05-11T00:00:00'
data_until: '2020-05-13T00:00:00'
title: Budget
properties:
enabled:
type: boolean
description: Whether budget is enabled or not
type:
type: string
minLength: 1
description: Type of budget
enum:
- budget_weekly
- budget_monthly
example: budget_monthly
fuel:
type: string
minLength: 1
description: Fuel it is enabled for
enum:
- elec
- gas
- district_heating
example: elec
resolution:
type: string
minLength: 1
description: Resolution of budget
enum:
- week
- month
unit:
type: string
minLength: 1
description: Unit of budget
enum:
- energy
- cost
example: energy
limit:
type:
- number
- 'null'
description: Limit of the budget in Wh, or currency (depending on unit)
example: 1234.5
suggested_limit:
type: number
description: If user want to set up a new budget this value could be used as a suggested limit. Only returned if
a forecast could be made
example: 1234.5
config:
type: object
description: Configuration for how the budget limit is determined. Returned when the budget is enabled.
properties:
mode:
type: string
description: 'How the budget limit is set.
- `manual`: the limit is a fixed value provided by the client.
- `auto`: the limit is derived automatically from the forecast at the start of each period as `forecast *
(1 + margin_percent / 100)`. The derived limit is frozen for the duration of the period.'
enum:
- manual
- auto
example: auto
margin_percent:
type:
- number
- 'null'
description: Percentage applied over the forecast when mode is 'auto'. Clamped server-side to [-50, 50]. Defaults
to 20. Null when mode is 'manual'.
example: 20
series:
type: object
description: Cumulative consumption and forecast for the current budget period, one value per resolution step. Returned
when the budget is enabled and a run has produced data.
properties:
fuel:
type: string
description: Fuel the series is for.
enum:
- elec
- gas
- district_heating
example: elec
unit:
type: string
description: Unit the series is for.
enum:
- energy
- cost
example: energy
resolution:
type: string
description: Resolution of the series.
enum:
- week
- month
from:
type:
- string
- 'null'
description: Start of the current period (inclusive).
format: date-time
example: '2020-05-11T00:00:00'
to:
type:
- string
- 'null'
description: End of the current period (exclusive).
format: date-time
example: '2020-05-18T00:00:00'
consumption_cumulative:
type: array
description: Cumulative actual consumption at each step from period start. Steps with no data yet are null.
items:
type:
- number
- 'null'
example:
- 5000
- 11000
- 16370
- null
forecast_cumulative:
type: array
description: Cumulative forecasted consumption at each step to the end of the period.
items:
type:
- number
- 'null'
example:
- 6000
- 12000
- 18000
- 24000
status:
type: object
description: Contains status about last run. Returned when the budget is enabled.
required:
- code
- value
- forecast
properties:
code:
type: string
minLength: 1
description: Indicates whether last run was successful or not.
enum:
- ok
- not_ok
result:
type:
- string
- 'null'
minLength: 1
description: Available if code 'ok'.
enum:
- currently_below
- forecasted_above
- above
- completed_below
- null
example: currently_below
value:
type:
- number
- 'null'
description: Accumulative value between period start and data_until, available if code 'ok'.
example: 123.4
forecast:
type:
- number
- 'null'
description: Forecast of value at end of period, available if code 'ok' and if a forecast could be made.
period_start:
type: string
minLength: 1
description: Start of the period, available if code 'ok'.
example: '2021-01-01T00:00:00'
format: date-time
period_end:
type: string
minLength: 1
description: End of the period, available if code 'ok'.
format: date-time
example: '2021-02-01T00:00:00'
data_until:
type: string
minLength: 1
description: Latest data value (exclusive), available if code 'ok'.
example: '2021-01-05T00:00:00'
action:
type: object
description: Available if code is 'not_ok'. Indicates what went wrong during last run
properties:
code:
type: string
description: Code explaining last runs fail.
enum:
- budget_awaiting_first_run
- budget_not_enough_data
example: budget_not_enough_data
description:
type: string
description: Description of last runs fail.
example: Not enough data to run budget
required:
- enabled
- type
- fuel
- resolution
- unit
BudgetHistory:
description: Past budget periods for a location as aligned time series. Each index in `limit` and `consumption` corresponds
to one period between `from` and `to` at `resolution`.
type: object
title: BudgetHistory
properties:
fuel:
type: string
description: Fuel the history is for.
enum:
- elec
- gas
- district_heating
example: elec
unit:
type: string
description: Unit the history is for.
enum:
- energy
- cost
example: energy
resolution:
type: string
description: Resolution of the history periods.
enum:
- week
- month
example: month
from:
type: string
description: Start of the first period (inclusive).
format: date-time
example: '2020-01-01T00:00:00'
to:
type: string
description: End of the last period (exclusive).
format: date-time
example: '2020-04-01T00:00:00'
limit:
type: array
description: Budget limit for each period. Null for periods where no budget was set.
items:
type:
- number
- 'null'
example:
- 200000
- 200000
- 180000
consumption:
type: array
description: Actual consumption for each period. Null for periods with no data.
items:
type:
- number
- 'null'
example:
- 187500
- 213000
- 165200
required:
- fuel
- unit
- resolution
- from
- to
- limit
- consumption
Advice:
required:
- content
- id
- key
- relevance
- title
- type
type: object
properties:
id:
minLength: 1
type: string
description: Advice id.
example: c7fd3d37-9f50-4cfa-b958-dfef25074189
relevance:
maximum: 1
minimum: 0
type: number
description: A number that indicates how relevant the advice is for the end user. The higher the number, the more
relevant the advice.
format: double
example: 0.9
estimated_yearly_savings_energy:
type: number
description: "Estimated savings in energy kWh.\r\n \r\nDeprecated property, estimated_yearly_savings\
\ should be used instead."
format: double
nullable: true
estimated_yearly_savings:
type: array
items:
$ref: '#/components/schemas/EstimatedSavings'
description: "A list of available estimated savings in either kWh or M3, depending on whether the advice is intended\r\
\nfor gas or electricity fuel."
nullable: true
estimated_yearly_savings_cost:
type: number
description: "Estimated savings in cost. Currency is the same as price formula currency.\r\n\r\nDeprecated property,\
\ estimated_yearly_savings_monetary should be used instead."
format: double
nullable: true
example: 33.24
estimated_yearly_savings_monetary:
type: array
items:
$ref: '#/components/schemas/SavingMonetary'
description: "A list of available estimated savings in cost. Currency is the same as price formula currency.\r\n\
\r\nAvailable monetary source types are provided with a separate endpoint \r\nGet savings monetary sources."
nullable: true
title:
minLength: 1
type: string
description: Title text.
example: This is a title
content:
minLength: 1
type: string
description: Content text.
example: This is the content
key:
minLength: 1
type: string
description: Unique advice key.
example: advice_energy_key
status:
$ref: '#/components/schemas/AdviceStatus'
activated_at:
type: string
description: "Timestamp in UTC\r\n\r\nOne optional setting is to configure advice to be activated after a certain\
\ time period.\r\n\r\nIf this is defined, the timestamp indicates when the advice was activated. This is managed\
\ by Eliq on the backend side.\r\n\r\nIf an advice has not been activated the timestamp is null, and this can\
\ be used to filter out non activated advice."
format: date-time
nullable: true
example: '2021-01-20T00:00:00Z'
updated_status_at:
type: string
description: "Timestamp in UTC\r\n\r\nThis timestamp indicates when the advice status was last updated."
format: date-time
nullable: true
example: '2022-01-20T00:00:00Z'
link:
$ref: '#/components/schemas/Link'
links:
type: array
items:
$ref: '#/components/schemas/AdviceLinkModel'
description: Optional collection of links can be included with each advice
nullable: true
type:
$ref: '#/components/schemas/AdviceType'
investment_cost:
$ref: '#/components/schemas/AdviceInvestmentCostModel'
financing_options:
type: array
items:
$ref: '#/components/schemas/AdviceFinancingOptionModel'
description: Available financing options
nullable: true
euc_keys:
type: array
items:
type: string
description: The EUC (energy usage category) keys related to specific advice.
nullable: true
description: Model containing advice information.
AdviceFinancingOptionModel:
required:
- description
- key
- title
- type
- url
type: object
properties:
key:
minLength: 1
type: string
description: Unique key used to identify a financing option. Consisting only of lowercase letters and underscores.
example: financing_key
type:
$ref: '#/components/schemas/FinancingOptionType'
title:
minLength: 1
type: string
description: Title text
description:
minLength: 1
type: string
description: Description text
url:
minLength: 1
type: string
description: Url of an external Web resource
description: Financing option
EstimatedSavings:
required:
- unit
- value
type: object
properties:
value:
type: number
description: The amount saved.
format: double
unit:
$ref: '#/components/schemas/EnergyUnit'
description: "The estimated energy savings in either kWh or M3 for a given advice.\r\n \r\nUnit depends on\
\ whether the advice is intended for gas of electricity."
AdviceLinkModel:
required:
- key
- text
- type
type: object
properties:
key:
minLength: 1
type: string
description: The key by which the link is identified.
type:
$ref: '#/components/schemas/AdviceLinkType'
text:
minLength: 1
type: string
description: The text to be displayed in the front end for this link.
url:
type: string
description: The actual URL of the link.
nullable: true
description: Optional link which can be included with each advice
AdviceLinkType:
enum:
- image
- external-link
type: string
description: The type which can be set to an advice Link.
EnergyUnit:
enum:
- kwh
- m3
type: string
FinancingOptionType:
enum:
- financing
- subsidy
type: string
description: Financing option type
AdvicePatchInput:
required:
- op
- path
- value
type: object
properties:
op:
minLength: 1
type: string
description: "Operation to execute\r\n\r\nAllowed values: \"replace\""
example: replace
path:
minLength: 1
type: string
description: "Path to property to update\r\n\r\nAllowed values: \"/status\""
example: /status
value:
minLength: 1
type: string
description: "Status to set. \r\n\r\nAllowed values: \"none\", \"skipped\", \"not_relevant\", \"implemented\", \"\
save_for_later\", \"already_implemented\""
example: implemented
description: Advice status update request body
AdviceStatus:
enum:
- none
- skipped
- not_relevant
- implemented
- save_for_later
- already_implemented
type: string
description: This statuses are used to capture end user feedback and feed this information back to our algorithms as
well as making it easy to build an UI. The status can be updated at any time.
AdviceType:
enum:
- energy_tip
- upgrade
type: string
description: Advice type is used as a sub-category or a group
Direction:
enum:
- import
- export
- consumption
- production
type: string
description: Direction type
EUC:
required:
- accuracy
- breakdown
- from
- to
- total_value
- unit
type: object
properties:
accuracy:
$ref: '#/components/schemas/EucAccuracy'
total_value:
type: number
description: Total value
format: double
example: 12881
from:
type: string
description: From date
format: date-time
example: '2024-02-01T00:00:00'
to:
type: string
description: To date
format: date-time
example: '2024-03-01T00:00:00'
unit:
minLength: 1
type: string
description: Unit
example: energy
breakdown:
type: array
items:
$ref: '#/components/schemas/EucCategoryResultModel'
description: A list of energy usage values for each category
description: Model containing energy usage by category
EpcRatingResponse:
required:
- energy_efficiency
- energy_rating
- type
type: object
properties:
energy_rating:
minLength: 1
type: string
description: Energy rating
energy_efficiency:
type: integer
description: Energy efficiency
format: int32
type:
$ref: '#/components/schemas/EpcRatingType'
valid_from:
type: string
description: "Valid from date\r\n\r\nNot available for estimated energy rating type"
format: date-time
nullable: true
valid_to:
type: string
description: "Valid to date\r\n\r\nNot available for estimated energy rating type"
format: date-time
nullable: true
status:
$ref: '#/components/schemas/EpcRatingStatus'
description: EPC rating
EpcRatingStatus:
enum:
- active
- expired
type: string
description: "Current energy rating status based on the valid from and to dates\r\n\r\nNot available for estimated energy\
\ rating type"
EpcRatingType:
enum:
- actual
- estimated
type: string
description: Energy rating type
Error:
type: object
properties:
type:
type: string
description: Type of error.
nullable: true
example: internal_error
category:
type: string
description: Error category.
nullable: true
example: internal_error
code:
type: string
description: Code describing the issue.
nullable: true
example: INTERNAL_ERROR
transaction_id:
type: string
description: Identifier for the session. Please provide this when contacting support.
nullable: true
example: 0HN18NN5QB401:00000001
message:
type: string
description: A message related to the error.
nullable: true
example: Something went wrong. Please try again later. If problem remains, please contact support.
description:
type: string
description: A description of the error for developers.
nullable: true
example: Internal server error, please try again later. If problem remains, please contact support.
description: Model returned for error responses.
EucCategoryResultModel:
required:
- category
- percentage
- value
type: object
properties:
category:
minLength: 1
type: string
description: Category
example: lighting
value:
type: number
description: Energy usage value
format: double
example: 1350
percentage:
maximum: 100
minimum: 0
type: number
description: Percentage of total value
format: double
example: 10.48
description: Energy usage by category
EucAccuracy:
enum:
- high
- medium
- low
type: string
description: Result data accuracy
Link:
required:
- text
- url
type: object
properties:
text:
minLength: 1
type: string
description: Title provided for a given Web resource
example: Example Domain
url:
minLength: 1
type: string
description: System generated url that redirects to a given Web resource. Provided url uses anonymous authentication
and is only valid for 30 minutes after its receival.
example: https://www.eliq.io/v3/locations/advice/redirect_url?adviceTrackingId=3f062710-d544-49b4-ac04-9ef14e3080b5
description: "Optional link can be included with each advice\r\n \r\nDeprecated property, links should be\
\ used instead."
AdviceInvestmentCostModel:
type: object
properties:
fixed:
type: number
description: Fixed investment cost value
format: double
nullable: true
range_from:
type: number
description: Investment cost range from value
format: double
nullable: true
range_to:
type: number
description: Investment cost range to value
format: double
nullable: true
roi:
type: array
items:
$ref: '#/components/schemas/AdviceReturnOfInvestmentModel'
nullable: true
description: Investment cost
AdviceReturnOfInvestmentModel:
required:
- from
- to
- unit
type: object
properties:
unit:
$ref: '#/components/schemas/AdviceReturnOfInvestmentUnit'
from:
type: number
description: From value
format: double
to:
type: number
description: To value
format: double
description: Return of investment
AdviceReturnOfInvestmentUnit:
enum:
- months
type: string
description: Return of investment unit
SavingMonetary:
required:
- cost
- cost_per_wh
- type
type: object
properties:
type:
minLength: 1
type: string
description: Monetary source type
example: price_formula
cost:
type: number
description: Savings amount in local currency
format: double
example: 33.24
cost_per_wh:
type: number
description: Savings amount per one kilowatt-hour in local currency
format: double
example: 0.27
description: Savings monetary value
SavingMonetarySource:
required:
- details
- name
- type
type: object
properties:
type:
minLength: 1
type: string
description: Unique source type
example: average
name:
minLength: 1
type: string
description: Savings source type name
example: Average
details:
minLength: 1
type: string
description: Savings source type details
example: Savings based on average price
description: Savings calculation source type
SimilarHomesConsumptionResultModel:
required:
- result_status
type: object
properties:
result:
$ref: '#/components/schemas/SimilarHomesConsumption'
result_status:
$ref: '#/components/schemas/SimilarHomesResultStatus'
description: Model containing similar homes consumption result.
SimilarHomesConsumption:
required:
- from
- fuel
- resolution
- to
- unit
type: object
properties:
consumption:
type: array
items:
type: integer
format: int32
description: Will always contain the exact amount of elements as there are time frames between 'to' and 'from' with
the given 'resolution'. Values inside the array can be null if no energy data exists (one day always contains
24 values). Values are whole numbers.
nullable: true
deprecated: true
values:
type: array
items:
type: number
format: double
description: Contains cost or energy depending on the query parameters of the request. Will always contain the exact
amount of elements as there are time frames between 'to' and 'from' with the given 'resolution'. Values inside
the array can be null if no energy data exists (one day always contains 24 values). Values are floating-point
numbers.
nullable: true
resolution:
$ref: '#/components/schemas/SimilarHomesResolutionType'
fuel:
$ref: '#/components/schemas/SimilarHomesFuelType'
unit:
$ref: '#/components/schemas/SimilarHomesUnitType'
from:
type: string
description: From date
format: date-time
example: '2021-01-01T00:00:00'
to:
type: string
description: To date
format: date-time
example: '2021-02-01T00:00:00'
description: Similar homes consumption data.
SimilarHomesResolutionType:
enum:
- day
- month
type: string
description: Matches with the value passed in query parameters of the request.
SimilarHomesFuelType:
enum:
- elec
- gas
type: string
description: Matches with the value passed in query parameters of the request, or a default value.
SimilarHomesUnitType:
enum:
- energy
- cost
type: string
description: Matches with the value passed in query parameters of the request, or a default value.
SimilarHomesReportResultModel:
required:
- result_status
type: object
properties:
result:
$ref: '#/components/schemas/SimilarHomesReport'
result_status:
$ref: '#/components/schemas/SimilarHomesResultStatus'
description: Model containing similar homes report result.
SimilarHomesReport:
required:
- distribution_values
- from
- to
- value
type: object
properties:
value:
type: number
description: Average energy in Wh or cost for similar homes over the requested period
format: double
distribution_values:
type: array
items:
type: number
format: double
description: Similar homes consumption data deciles. Contains values for all 10 ranks of deciles - starting from
1st and ending with 10th decile. The 1st decile has 10 per cent of the data set below it, the 2nd decile has 20
per cent of the data set below and so on. The 10th decile has 100 per cent of the data set below, making it a
maximum value for the dataset.
energy_wh:
type: integer
description: Average energy Wh for similar homes over the requested period
format: int32
nullable: true
deprecated: true
distribution:
type: array
items:
type: integer
format: int32
description: Distribution of similar homes energy Wh consumption in deciles
nullable: true
deprecated: true
from:
type: string
description: From date
format: date-time
to:
type: string
description: To date
format: date-time
description: Similar homes report for the requested period.
Anomaly:
description: Anomaly object
type: object
x-examples:
example-1:
type: high_monthly_forecast
fuel: elec
status:
code: not_ok
data_until: '2020-05-20T00:00:00'
result: none
action:
code: anomaly_awaiting_first_run
description: Anomaly is awaiting first run
examples:
- type: daily_anomaly
fuel: elec
status:
code: ok
data_until: '2020-05-20T00:00:00'
result: none
properties:
type:
type: string
minLength: 1
description: Anomaly type
enum:
- daily_anomaly
- high_monthly_forecast
example: daily_anomaly
fuel:
type: string
minLength: 1
example: elec
enum:
- elec
- gas
- district_heating
description: Fuel for anomaly
status:
type: object
required:
- code
properties:
code:
type: string
minLength: 1
enum:
- ok
- not_ok
example: ok
description: Status code indicating whether last run was successful or not
data_until:
type:
- string
- 'null'
minLength: 1
description: Which date the last data point had during last run (local date for location)
format: date-time
example: '2020-05-20T00:00:00'
result:
type:
- string
- 'null'
minLength: 1
description: Result from last run. Null if code is 'not_ok'
enum:
- none
- low
- high
action:
type:
- object
- 'null'
description: Available if code is 'not_ok'. Indicates what went wrong during last run
required:
- code
- description
properties:
code:
type: string
minLength: 1
description: Code explaining last runs fail
example: anomaly_awaiting_first_run
enum:
- anomaly_not_enough_data
- anomaly_awaiting_first_run
description:
type: string
minLength: 1
description: Description of last runs fail
example: Anomaly is awaiting first run
required:
- type
- fuel
- status
Notification:
description: 'Notification object. Content available in "object" is dependent on the notification type. '
type: object
x-examples:
example-1:
type: monthly_insight
id: 123456
read: false
created_date: '2021-05-17T13:35:22.473'
header: Ny månadsrapport
content: 'Hej Eva!
Din energianvändning för..'
object: null
examples:
- type: monthly_insight
id: 123456
read: true
created_date: '2021-05-17T13:35:22.473'
header: Ny månadsrapport
content: Hej Eva!\nDin energianvändning för..
object:
location_id: 1234
location_ext_ref: '{location_ext_ref}'
type: monthly_insight
fuel: elec
period_start: '2020-10-01T00:00:00.000'
period_end: '2020-11-01T00:00:00.000'
message:
language:
sv-SE:
header: Ny månadsrapport
content: 'Hej Eva!
Din energianvändning för..'
title: Notification
properties:
type:
type: string
minLength: 1
description: Notification type
example: monthly_insight
id:
type: number
description: Eliq internal ID of the notification
example: 123456
read:
type: boolean
description: Could be used to indicate it the notification is read or not. Needs to be used together with PATCH
notifications.
default: true
created_date:
type: string
minLength: 1
description: 'The date when the notification was created. The date is in UTC (Z flag is missing due to design mistake
:)) '
format: date-time
example: '2021-05-17T13:35:22.473'
header:
type: string
minLength: 1
description: Header of notification. In language code set for the user
example: Ny månadsrapport
content:
type: string
minLength: 1
description: Content of notification in language code set for the user. May contain new line marker '\n'
example: Hej Eva!\nDin energianvändning för..
object:
type: object
description: 'Object containing detailed information from the source of the notification. E.g. a monthly insights
object. '
required:
- type
- id
- read
- created_date
- header
- content
MarketPriceResponseDto:
required:
- currency
- from
- resolution
- to
- values
type: object
properties:
resolution:
minLength: 1
type: string
description: Resolution of the values array
currency:
minLength: 1
type: string
description: Currency of the price_kwh
from:
type: string
description: From date inclusive
to:
type: string
description: To date exclusive
values:
type: array
items:
$ref: '#/components/schemas/MarketPriceElementDto'
description: Values in the specified resolution. The size always matches the number of periods between from and
two in the given resolution. May contain null.
PeakPowerResponse:
required:
- direction
- from
- fuel
- peak_power_resolution
- peak_power_timestamp
- power
- resolution
- to
type: object
properties:
power:
type: array
items:
type: number
format: double
description: List of power values
peak_power_timestamp:
type: array
items:
type: string
format: date-time
description: List of timestamps indicating when the peak power was recorded
from:
type: string
description: From date
format: date-time
to:
type: string
description: To date, exclusive
format: date-time
fuel:
enum:
- elec
- gas
- district_heating
type: string
description: Fuel type
direction:
enum:
- import
- export
- consumption
- production
type: string
description: Direction type
resolution:
enum:
- hour
- day
- month
type: string
description: Peak power data resolution
peak_power_resolution:
enum:
- 6min
- 10min
- 15min
- 30min
- hour
type: string
description: Resolution of peak power values
consumption:
type: array
items:
type: number
format: double
description: List of consumption values
nullable: true
deprecated: true
production:
type: array
items:
type: number
format: double
description: List of production values
nullable: true
deprecated: true
import:
type: array
items:
type: number
format: double
description: List of import values
nullable: true
deprecated: true
export:
type: array
items:
type: number
format: double
description: List of export values
nullable: true
deprecated: true
description: Peak power response model
PatchLocationProfileRequestModel:
type: object
properties:
from:
type: string
description: The date on which a location profile's value changed
format: date-time
value:
description: The value of the location profile's property
LocationProfileType:
required:
- type
type: object
properties:
type:
$ref: '#/components/schemas/ProfileType'
ProfileType:
enum:
- residential
- business
- undefined
type: string
description: Profile type
LocationNotificationSettingsInput:
required:
- notification_type_id
type: object
properties:
notification_type_id:
type: integer
description: The unique notification id
format: int32
enabled:
type: boolean
description: Specify whether the notification is enabled. Disabled notifications are not sent.
nullable: true
mute_email:
type: boolean
description: Specify whether delivery by email should be muted. True - not delivered, False - delivered.
nullable: true
mute_text:
type: boolean
description: Specify whether delivery by SMS text message should be muted. True - not delivered, False - delivered.
nullable: true
mute_push:
type: boolean
description: Specify whether push notification delivery to a user's smartphone should be muted. True - not delivered,
False - delivered.
nullable: true
mute_webhook:
type: boolean
description: Specify whether webhook delivery should be muted. True - not delivered, False - delivered.
nullable: true
description: "The various settings which can be configured for a notification.\r\nAn important note is that the notification\
\ is sent via all configured channels.\r\nI.E. if none of the channels (email, text, push, webhook) are muted, ALL\
\ of them will be used in order to deliver the notification."
LocationProfileCompletionResponse:
required:
- completion_percentage
type: object
properties:
completion_percentage:
type: integer
format: int32
LocationProfileDataType:
enum:
- single_select
- multiple_select
- number
type: string
description: Data type
LocationProfilePossibleValue:
required:
- developer_description
- value
type: object
properties:
value:
minLength: 1
type: string
description: Value to select
developer_description:
minLength: 1
type: string
description: Description not meant for end users
description: A possible value for a location profile setting. Available when the specified data_type is single_select
or multiple_select.
LocationProfileSelectedValue:
required:
- id
- value
type: object
properties:
id:
type: string
description: Unique identifier for the selected value
format: uuid
value:
description: Selected value. Depending on the specified data_type, this value can be a number (number), string (single_select)
or a list of strings (multiple_select).
from:
type: string
description: Value is valid from this date. If not specified, the value is valid from the beginning of time.
format: date-time
nullable: true
description: Selected value with metadata
LocationProfileSetting:
required:
- data_type
- dependent_properties
- developer_description
- group
- key
type: object
properties:
key:
minLength: 1
type: string
description: Identifier for the setting
data_type:
$ref: '#/components/schemas/LocationProfileDataType'
selected_values:
type: array
items:
$ref: '#/components/schemas/LocationProfileSelectedValue'
nullable: true
possible_values:
type: array
items:
$ref: '#/components/schemas/LocationProfilePossibleValue'
nullable: true
limits:
$ref: '#/components/schemas/LocationPropertyLimit'
dependent_properties:
type: array
items:
$ref: '#/components/schemas/LocationPropertyRequirement'
developer_description:
minLength: 0
type: string
description: Description not meant for end users
tags:
type: array
items:
$ref: '#/components/schemas/LocationProfileTag'
description: "Denotes whether settings is required for Similar homes or EUC to work.\r\nIf empty - Similar homes/EUC\
\ do not require this setting."
nullable: true
group:
minLength: 0
type: string
description: The group (or category) to which this setting belongs to
example: cooking, appliances, fridges_and_freezers
description: Location profile key setting
LocationProfileSettings:
required:
- groups
- settings
type: object
properties:
settings:
type: array
items:
$ref: '#/components/schemas/LocationProfileSetting'
groups:
type: array
items:
type: string
LocationProfileTag:
enum:
- required_for_sh_to_work
- required_for_euc_to_work
type: string
description: Tag for location profile
LocationProfileValueRequest:
required:
- key
- value
type: object
properties:
key:
minLength: 1
type: string
description: Identifier for the setting
value:
description: Selected value. Depending on the specified data_type, this value can be a number (number), string (single_select)
or a list of strings (multiple_select).
from:
type: string
description: Value is valid from this date. If not specified, the value is valid from the beginning of time.
format: date-time
nullable: true
description: Location profile value input
LocationProfileValueResponse:
required:
- id
- key
- value
type: object
properties:
id:
type: string
description: Unique identifier for the selected value
format: uuid
key:
minLength: 1
type: string
description: Identifier for the setting
value:
description: Selected value. Depending on the specified data_type, this value can be a number (number), string (single_select)
or a list of strings (multiple_select).
from:
type: string
description: Value is valid from this date. If not specified, the value is valid from the beginning of time.
format: date-time
nullable: true
description: Location profile value result
LocationPropertyLimit:
required:
- max
- min
- step
type: object
properties:
min:
type: number
format: double
max:
type: number
format: double
step:
type: number
format: double
description: Limitations set for profile setting values. Available when the specified data_type is number.
LocationPropertyRequirement:
type: object
properties:
key:
type: string
description: Unique key for the property to depend on.
nullable: true
accepted_values:
type: array
items: {}
description: Accepted values. Based on the dependent properties data_type, values can be a number or a string.
nullable: true
description: Properties that are required for a setting to be valid.
Connection:
type: object
x-examples:
example-1:
id: 20b4adc8-2ae9-4f99-b50d-af0933042f58
display_name: Connection display name
provider: provider_name
status: connected
description: ''
properties:
id:
type: string
description: Id of connection
example: 20b4adc8-2ae9-4f99-b50d-af0933042f58
display_name:
type: string
description: A display friendly name of the connection. Can be displayed to the end-user
example: Connection display name
provider:
type: string
description: What provider the connection belongs to. Please contact Eliq for list of possible values, this is specific
per client.
example: provider_name
status:
type: string
description: Status of connection
enum:
- connected
- awaiting_confirmation
- disconnected
example: connected
ConnectionEntity:
type: object
x-examples:
example-1:
id: string
display_name: string
type: string
location_id: 0
meter:
fuel: string
type: string
supply_start_date: string
supply_end_date: null
data_available_from_date: string
data_available_to_date: string
title: ConnectionEntity
properties:
id:
type: string
description: Id of connection entity
example: 20b4adc8-2ae9-4f99-b50d-af0933042f58
display_name:
type: string
description: Display friendly name for connection entity. Can be displayed to end-user.
example: Electricity meter
type:
type: string
description: Type of entity
enum:
- meter
example: meter
location_id:
type: integer
description: Location id the entity belongs to
example: 1234
meter:
type: object
description: Available if type is 'meter'
properties:
fuel:
type: string
description: Fuel measured by meter
example: elec
enum:
- elec
- gas
- district_heating
type:
type: string
description: Which direction it measures
enum:
- import
- export
- consumption
- production
example: import
supply_start_date:
type: string
format: date
example: '2021-01-01'
supply_end_date:
type:
- string
- 'null'
example: '2022-01-01'
data_available_from_date:
type:
- string
- 'null'
example: '2021-01-01'
data_available_to_date:
type:
- string
- 'null'
example: '2022-06-05'
ConnectionMetaData:
title: ConnectionMetaData
x-stoplight:
id: 8hppqt6r7illo
type: object
properties:
status:
type: string
description: Meta data status
enum:
- ok
- not_connected
- action_required
- awaiting_confirmation
- awaiting_first_data_sync
example: ok
EliqConnectUriResponse:
title: EliqConnectUriResponse
x-stoplight:
id: x2vp8xc7rnr3y
type: object
properties:
uri:
type: string
example: https://connect.eliq.io/login?callbackUri={callback_uri}&linkOutCallbackUri={linkout_callback_uri}&ticketId={SSO_TICKET}
description: Uri to redirect the user to
UserNotification:
type: object
properties:
id:
type: integer
format: int64
header:
type: string
nullable: true
content:
type: string
nullable: true
read:
type: boolean
nullable: true
created_date:
type: string
format: date-time
nullable: true
event:
$ref: '#/components/schemas/Event'
Event:
type: object
properties:
created_date:
type: string
format: date-time
nullable: true
type:
type: string
nullable: true
source:
type: object
description: "The source of the event. This can for example be a monitor object or a report object\r\nTo figure\
\ out which object it is, look at Type"
nullable: true
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: The Eliq insights API uses bearer tokens to authenticate requests. Read more under Authentication tag.
requestBodies: {}
security:
- BearerAuth: []
tags:
- name: Advice
- name: Anomalies
- name: Authentication
- name: Breakdown
- name: Budgets
- name: Eliq Connect
- name: Energy Data
- name: Energy Usage Categories
- name: Energy Performance Certificate
- name: Health
- name: Location Profile
- name: Home Profile
- name: Locations
- name: Market Price
- name: Price Formulas
- name: Similar Homes
- name: Users
x-tagGroups:
- name: Authentication
tags:
- Authentication
- name: Users
tags:
- Users
- name: Locations
tags:
- Locations
- Location Profile
- Energy Data
- Energy Usage Categories
- Energy Performance Certificate
- Similar Homes
- Budgets
- Advice
- Anomalies
- Market Price
- Price Formulas
- name: Eliq Connect
tags:
- Eliq Connect
- name: Health
tags:
- Health
- name: Deprecated
tags:
- Breakdown
- Home Profile