Skip to main content

Rule Engine API

Rule Engine API provides HTTP API to control engine and its rules.

Get Rule Engine CloudGateway

GET /v3/sites/{site_id}/rule_engine

Returns information about the rule engine on the specified site.

Request

$ curl http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \

Response

Rule engine information:

{
"engine": {
"id": "4ebd5454-44bf-44ec-b85f-88da766c918c",
"state": "ACTIVE",
"timezone": "UTC"
}
}
engineobject#

Rule Engine information.

engine.idstring#

Rule Engine ID.

engine.statestring#

Can be ACTIVE or SUSPENDED.

engine.timezonestring#

The time zone is the same as the site's time zone.

Suspend Rule Engine CloudGateway

POST /v3/sites/{site_id}/rule_engine/suspend

Suspends the rule engine on the specified site.

Request

$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/suspend \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'

Response

Rule engine information:

{
"engine": {
"id": "4ebd5454-44bf-44ec-b85f-88da766c918c",
"state": "SUSPENDED",
"timezone": "UTC"
}
}
engineobject#

Rule Engine information.

engine.idstring#

Rule Engine ID.

engine.statestring#

Can be ACTIVE or SUSPENDED.

engine.timezonestring#

The time zone is the same as the site's time zone.

Resume Rule Engine CloudGateway

POST /v3/sites/{site_id}/rule_engine/resume

Resumes a previously suspended rule engine on the specified site.

Request

$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/resume \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'

Response

Rule engine information:

{
"engine": {
"id": "4ebd5454-44bf-44ec-b85f-88da766c918c",
"state": "ACTIVE",
"timezone": "UTC"
}
}
engineobject#

Rule Engine information.

engine.idstring#

Rule Engine ID.

engine.statestring#

Can be ACTIVE or SUSPENDED.

engine.timezonestring#

The time zone is the same as the site's time zone.

Create Rule CloudGateway

POST /v3/sites/{site_id}/rule_engine/rules

Creates a new rule in the rule engine on the specified site.

Request

$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
-d '{
"slug": "start-generator-1",
"script": {
"code": "...",
"runtime_version": "V3"
},
"disable": false
}'

Body Parameters

slugstringrequired#

The slug of the new rule.

scriptobjectrequired#

Rule script information.

script.codestring#

Rule script code as base64 encoded string.

script.runtime_versionstring#

V1 or V3.

disableboolean#

The the new rule will be disabled after creation.

Response

Information about the created rule:

{
"rule": {
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-1",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
}
}
ruleobject#

Rule information.

rule.idstring#

Rule ID.

rule.slugstring#

Rule slug.

scriptobject#

Rule script information.

script.codestring#

Rule script code as base64 encoded string.

script.runtime_versionstring#

V1 or V3.

rule.disabledboolean#

Indicates whether rule is enabled or disabled.

rule.statestring#

Can be STARTED or STOPPED.

List Rules CloudGateway

GET /v3/sites/{site_id}/rule_engine/rules

Returns all rules configured in the rule engine on the specified site.

Request

$ curl http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'

Response

List of rules:

{
"rules": [{
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-1",
"script": {
"code": "...",
"runtime_version": "V3"
},
"disabled": false,
"state": "STARTED"
}]
}

Get Rule CloudGateway

GET /v3/sites/{site_id}/rule_engine/rules/{rule_id}

Retrieves information about a specific rule.

Request

$ curl http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/c6cea573-a85f-4642-8e63-9a3e04b9ef98 \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'

Response

Rule information:

{
"rule": {
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-1",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
}
}
ruleobject#

Rule information.

rule.idstring#

Rule ID.

rule.slugstring#

Rule slug.

scriptobject#

Rule script information.

script.codestring#

Rule script code as base64 encoded string.

script.runtime_versionstring#

V1 or V3.

rule.disabledboolean#

Indicates whether rule is enabled or disabled.

rule.statestring#

Can be STARTED or STOPPED.

Update Rule CloudGateway

PATCH /v3/sites/{site_id}/rule_engine/rules/{rule_id}

Updates rule. Currently only rule slug can be updated.

Request

$ curl -X PATCH \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/c6cea573-a85f-4642-8e63-9a3e04b9ef98 \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
-d '{
"slug": "start-generator-low-battery"
}'

Body Parameters

slugstring#

The new slug of the rule.

Response

Updated rule:

{
"rule": {
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-low-battery",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
}
}
ruleobject#

Rule information.

rule.idstring#

Rule ID.

rule.slugstring#

Rule slug.

scriptobject#

Rule script information.

script.codestring#

Rule script code as base64 encoded string.

script.runtime_versionstring#

V1 or V3.

rule.disabledboolean#

Indicates whether rule is enabled or disabled.

rule.statestring#

Can be STARTED or STOPPED.

Update Rule Script CloudGateway

POST /v3/sites/{site_id}/rule_engine/rules/{rule_id}/update_script

Updates only the script of an existing rule.

Request

$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/c6cea573-a85f-4642-8e63-9a3e04b9ef98/update_script \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
-d '{
"script": {
"code": "...",
"runtime_version": "V3"
}
}'

Body Parameters

scriptobject#

Rule script information.

script.codestring#

Rule script code as base64 encoded string.

script.runtime_versionstring#

V1 or V3.

Response

Updated rule:

{
"rule": {
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-low-battery",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
}
}
ruleobject#

Rule information.

rule.idstring#

Rule ID.

rule.slugstring#

Rule slug.

scriptobject#

Rule script information.

script.codestring#

Rule script code as base64 encoded string.

script.runtime_versionstring#

V1 or V3.

rule.disabledboolean#

Indicates whether rule is enabled or disabled.

rule.statestring#

Can be STARTED or STOPPED.

Disable Rule CloudGateway

POST /v3/sites/{site_id}/rule_engine/rules/{rule_id}/disable

Disables a specific rule.

Request

$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/c6cea573-a85f-4642-8e63-9a3e04b9ef98/disable \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'

Response

Disabled rule:

{
"rule": {
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-low-battery",
"disabled": true,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
}
}
ruleobject#

Rule information.

rule.idstring#

Rule ID.

rule.slugstring#

Rule slug.

scriptobject#

Rule script information.

script.codestring#

Rule script code as base64 encoded string.

script.runtime_versionstring#

V1 or V3.

rule.disabledboolean#

Indicates whether rule is enabled or disabled.

rule.statestring#

Can be STARTED or STOPPED.

Batch Disable Rules CloudGateway

POST /v3/sites/{site_id}/rule_engine/rules/batch_disable

Disables multiple rules at once.

Request

$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/batch_disable \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
-d '{
"rule_ids": ["c6cea573-a85f-4642-8e63-9a3e04b9ef98", "b2d9abe6-82cd-4f68-8844-5282f294e763"]
}'

Body Parameters

rule_idsarray of stringsrequired#

List of rule IDs to disable.

Response

Disabled rules:

{
"rules": [{
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-low-battery",
"disabled": true,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
},
{
"id": "b2d9abe6-82cd-4f68-8844-5282f294e763",
"slug": "electrolysers-control",
"disabled": true,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STOPPED"
}]
}

Enable Rule CloudGateway

POST /v3/sites/{site_id}/rule_engine/rules/{rule_id}/enable

Enables a specific rule.

Request

$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/b2d9abe6-82cd-4f68-8844-5282f294e763/enable \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'

Response

Enabled rule:

{
"rule": {
"id": "b2d9abe6-82cd-4f68-8844-5282f294e763",
"slug": "electrolysers-control",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STOPPED"
}
}
ruleobject#

Rule information.

rule.idstring#

Rule ID.

rule.slugstring#

Rule slug.

scriptobject#

Rule script information.

script.codestring#

Rule script code as base64 encoded string.

script.runtime_versionstring#

V1 or V3.

rule.disabledboolean#

Indicates whether rule is enabled or disabled.

rule.statestring#

Can be STARTED or STOPPED.

Batch Enable Rules CloudGateway

POST /v3/sites/{site_id}/rule_engine/rules/batch_enable

Enables multiple rules at once.

Request

$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/batch_enable \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
-d '{
"rule_ids": ["c6cea573-a85f-4642-8e63-9a3e04b9ef98", "b2d9abe6-82cd-4f68-8844-5282f294e763"]
}'

Body Parameters

rule_idsarray of stringsrequired#

List of rule IDs to enable.

Response

Enabled rules:

{
"rules": [{
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-low-battery",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
},
{
"id": "b2d9abe6-82cd-4f68-8844-5282f294e763",
"slug": "electrolysers-control",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STOPPED"
}]
}

Delete Rule CloudGateway

DELETE /v3/sites/{site_id}/rule_engine/rules/{rule_id}

Deletes a specific rule.

Request

$ curl -X DELETE \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/c6cea573-a85f-4642-8e63-9a3e04b9ef98 \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'

Batch Delete Rules CloudGateway

POST /v3/sites/{site_id}/rule_engine/rules/batch_delete

Deletes multiple rules at once.

Request

$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/batch_delete \ -H'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
-d '{
"rule_ids": ["c6cea573-a85f-4642-8e63-9a3e04b9ef98", "b2d9abe6-82cd-4f68-8844-5282f294e763"]
}'

Body Parameters

rule_idsarray of stringsrequired#

List of rule IDs to delete.

All Rights Reserved © 2025 Enapter AG.