Skip to content

Get All Incidents

Returns a list of all incidents available to a current user.

Request

HTTP Request

GET /node/api/incidents

Path parameters

No parameters required.

Query parameters

Parameter Type Description
filter String A set of filters. See the filters section for more information.
limit Integer The maximum number of records to be outputted. Don't use with skip parameter.
owner String Whether to include information about an owner. If set to "true", such information for each record will be provided.
skip Integer The number of the first records to be skipped. Don't use with limit parameter.
sortDirection String A sorting direction. asc for ascending order, desc for descending.
sortField String The name of a field to sort by.
ownerFilter String Additional filter for owner's data.

Request body

Request body is empty.

Filters

You can filter the incidents with the filter parameter.

body = {
    "filter": [
      [
        // filter
      ]
    ],
    ...
}

You can also use logical operations $and and $or to combine the filters:

body = {
    "filter": [
      [
        "$and",
        [
          [
            "$or",
            [
              [
                // filter
              ],
              [
                // filter
              ]
            ]
          ],
          [
            // filter
          ],
          [
            // filter
          ]
        ]
      ]
    ],
    ...
}
Examples of available filters
Property

Available operations:

  • Equals: _eq
  • Not Equals: _neq
  • Matches: _m
  • Contains: _ct
  • Does not contain: _nct
"property",
{
  "value": "value",
  "property": "property_name",
  "op": "_neq"
}
Class
"classId",
"591c4ea02d84db763e226ced"  // ID of the class
State
"stateId",
// Array of state IDs
[
  "1",
  ...
  "591c4ea02d84db763e226ced"
]
Registered time
"timestamp",
{
  "from": 1660734896160,
  "to": 1660738496160
}
Occurred time
"localTimestamp",
{
  "from": 1660133723209,
  "to": 1660738523209
}
Cleared time
"clearTimestamp",
{
  "from": 1660734972645,
  "to": 1660738572645
}
Object/link

Note that the entity ID has to prefixed by the entity type — objects-... for objects and links-... for links.

"entity",
"objects-61576794877b1d7a1f43c59e"
Severity
"severity",
// Array of severity IDs
[
  1,
  ...,
  "5c0f67acf2a9273067af328f"
]
Text

Available operations:

  • Equals: _eq
  • Not Equals: _neq
  • Matches: _m
  • Contains: _ct
  • Does not contain: _nct
"text",
{
  "value": "Text",
  "op": "_eq"
}
Acknowledged by

You can return the incidents that have been acknowledged by a specified user.

"acknowledgedBy",
"5a0b26b8c9a7733f56b01a16"  // ID of a user who acknowledged an incident
Parent

With this filter set up, this request will return only those incidents that happened in the child entities of the specified parent.

"parent",
"6307e45cdf5886428654b368"  // ID of a parent entity

Note that this will exclude incidents that happened in the parent itself. To include them, use the logical OR to combine this filter with the Object/Link filter:

"$or",
[
  [
    "parent",
    "6307e45cdf5886428654b368"  // ID of a parent entity
  ],
  [
    "entity",
    "objects-6307e45cdf5886428654b368"  // ID of a parent entity
  ]
]
Comment
"comment",
{
  "value": "Comment",
  "op": "_eq"
}
Transition time
"lastStateUpdate",
{
  "from": 1660736721329,
  "to": 1660740321329
}
Field comparison

You can compare fields and filter based on that.

Fields, available for comparison:

  • Registered time: timestamp
  • Occurred time: localTimestamp
  • Cleared time: clearTimestamp
  • Last state update time: lastStateUpdate
  • Object creation time: created

Available operations:

  • Equals: _eq
  • Not Equals: _neq
  • Matches: _m
  • Contains: _ct
  • Does not contain: _nct
[
  "timestamp",
  "clearTimestamp"
],
"_eq"

Setting skip with limit

The skip parameter lets you skip a number of the first records.

{
    "skip":3
}
[
    {
        "id": "1"
        ...        
    },
    {
        "id": "2"
        ...        
    },
    {
        "id": "3"
        ...        
    },
    {
        "id": "4"
        ...        
    },
    ...
]
[
    {
        "id": "4"
        ...        
    },
    {
        "id": "5"
        ...        
    },
    {
        "id": "6"
        ...        
    },
    ...
]

The limit parameter sets the maximum amount of the records.

{
    "limit":3
}
[
    {
        "id": "1"
        ...        
    },
    {
        "id": "2"
        ...        
    },
    {
        "id": "3"
        ...        
    },
    {
        "id": "4"
        ...        
    },
    {
        "id": "5"
        ...        
    },
    ...
]
[
    {
        "id": "1"
        ...        
    },
    {
        "id": "2"
        ...        
    },
    {
        "id": "3"
        ...        
    }
]

However, if you combine these parameters, it won't return the number of the records specified in the limit parameter after a number of records specified in the skip parameter. Instead, it will return limit + skip number of records after the skip number of records:

{
    "skip": 3,
    "limit": 3
}
[
    {
        "id": "4"
        ...        
    },
    {
        "id": "5"
        ...        
    },
    {
        "id": "6"
        ...        
    },
    {
        "id": "7"
        ...        
    },
    {
        "id": "8"
        ...        
    },
    {
        "id": "9"
        ...        
    }
]

Response

Returns a list of current incidents. Can return either the entire list or be customized with request parameters. See Incident model for more information.

Example

Request

login=<...>
password=<...>
saymon_hostname=<...>
url=https://$saymon_hostname/node/api/incidents

curl -X GET $url -u $login:$password
let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/incidents";
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/incidents/";
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/incidents"

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

Response

[
    {
        "id": "58f9fe155be7187c551f1c5f",
        "entityId": 10,
        "entityType": 1,
        "type": 1,
        "state": 1,
        "localTimestamp": 0,
        "data": "{...}",
        "timestamp": 1493884332909,
        "text": "No data"
    },
    ...
]

See Also