Get State History Log

Returns all state history records for both objects and links. Note that this request returns the state history of only those entities that you have permissions to access.

Request

HTTP Request

GET /node/api/state-history-log

Path parameters

No parameters required.

Query parameters

Parameter Type Description

from

Integer

A lower-bound timestamp for state history records as Unix timestamp in milliseconds.

to

Integer

An upper-bound timestamp for state history records as Unix timestamp in milliseconds.

limit

String

The maximum number of records to be retrieved. Count starts from 0. If you don’t specify the limit this request will return all state history records in the given timeframe.

skip

String

The number of the first records to be skipped. Default value is 0.

inverse

Boolean

true to return history records in inverse order – from oldest to most recent. Default value is false.

downsample

Boolean

true to reduce duplicate state history data. Default value is false.

stateId

String | Array<String>

State ID or a list of state IDs with which to filter the history log.

classId

String | Array<String>

Class ID or a list of class IDs with which to filter the history log. Request will return records of state changes of entities that belong to a class specified in this list.

This parameter requires the time range to be specified in the query parameters and be within the maximum time range set in the server configuration.

tagId

String | Array<String>

Tag ID or a list of tag IDs with which to filter the history log. Request will return records of state changes of entities that have a tag specified in this list.

This parameter requires the time range to be specified in the query parameters and be within the maximum time range set in the server configuration.

entityId

String | Array<String>

Entity ID or a list of entity IDs with which to filter the history log. Request will return records of state changes of entities specified in this list.

entityType

Integer

Filter the history log by the entity type. 1 is object, 2 is link.

entityName

String

Filter the history log by the entity’s name (or a part of it).

This parameter requires the time range to be specified in the query parameters and be within the maximum time range set in the server configuration.

Request body

The request body is empty.

Response

Returns an array of state records that fit the criteria specified in the query parameters. See the State History model for more information.

Example

Request

  • Bash

  • JavaScript

  • NodeJS

  • Python

login=<...>
password=<...>
saymon_hostname=<...>
url=https://$saymon_hostname/node/api/state-history-log

curl -X GET $url -u $login:$password
let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/state-history-log";
let auth = "Basic " + btoa(login + ":" + password);

let headers = new Headers();
headers.append("Authorization", auth);

let requestOptions = {
    method: "GET",
    headers: headers
};

fetch(saymonHostname + path, requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log("error", error));
const http = require("http");

let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/state-history-log";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");

let options = {
    "method": "GET",
    "hostname": saymonHostname,
    "headers": {
        "Authorization": auth
    },
    "path": path
};

let req = http.request(options, function (res) {
    let chunks = [];

    res.on("data", function (chunk) {
        chunks.push(chunk);
    });

    res.on("end", function (chunk) {
        let body = Buffer.concat(chunks);
        console.log(body.toString());
    });

    res.on("error", function (error) {
        console.error(error);
    });
});

req.end();
import requests

login = <...>
password = <...>
saymon_hostname = <...>
url = "https://" + saymon_hostname + "/node/api/state-history-log"

response = requests.request("GET", url, auth=(login, password))
print(response.text)

Response

[
    {
        "entityId": 1,
        "entityType": 1,
        "stateId": 1,
        "timestamp": 1579267920651,
        "entityName": "ROOT",
        "entityClass": 1,
        "skip": 0,
        "id": "5e21b750308c3c66d64e071a"
    },
    {
        "entityId": "5e21b85b308c3c66d64e07c8",
        "entityType": 1,
        "stateId": 1,
        "timestamp": 1579268187090,
        "entityName": "SAYMON Agent",
        "entityClass": 2,
        "skip": 2,
        "id": "5e21b85b308c3c66d64e07cd"
    },
    ...
]