Search Objects
Searches for objects matching specified criteria.
Request
HTTP Request
Permissions
Path parameters
No parameters required.
Body parameters
You can use any field in the Object model as the criterion.
Parameter | Type | Description |
---|---|---|
search | Object | Search criteria. |
options | Object | Additional request options. |
options.includeClientData | Boolean | Whether to include the client data in the response. false by default. |
You can also use modifiers to specify the criteria further.
$in
The $in
parameter allows you to specify an array of precise values. Objects whose specified field contains any of these values are returned in the response.
Numeric fields comparison
You can use the following expressions on the object's numeric fields:
$gt
– greater than;$lt
– less than;$gte
– greater than or equal to;$lte
– greater than or equal to.
Regular expressions
Use regular expressions to filter objects by their text fields.
You can specify the following regular expression options in the $options
field:
Options | Descriptions |
---|---|
i |
Ignore case. |
Properties
Use $elemMatch
modifier to search by specific fields of properties. You can see all fields on the Property Model page.
Request body
Response
This request returns an array of objects that match the specified search criteria.
Example
Request
The following examples show how to perform a case-insensitive search of all objects named "CPU":
let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/objects/search";
let auth = "Basic " + btoa(login + ":" + password);
let headers = new Headers();
headers.append("Content-Type", "application/json");
headers.append("Authorization", auth);
let data = JSON.stringify({
"search": {
"name": {
"$regex": "cpu",
"$options": "i"
}
}
});
let requestOptions = {
method: "POST",
headers: headers,
body: data
};
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/objects/search";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");
let options = {
"method": "POST",
"hostname": saymonHostname,
"headers": {
"Authorization": auth,
"Content-Type": "application/json"
},
"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);
});
});
let data = JSON.stringify({
"search": {
"name": {
"$regex": "cpu",
"$options": "i"
}
}
});
req.write(data);
req.end();
import requests
import json
login = <...>
password = <...>
saymon_hostname = <...>
url = "https://" + saymon_hostname + "/node/api/objects/search"
body = {
"search": {
"name": {
"$regex": "cpu",
"$options": "i"
}
}
}
response = requests.request("POST", url, json=body, auth=(login, password))
print(response.text)
Response
[
{
"name": "CPU",
"discovery_id": "example-CPU",
"object_groups": [],
"geoposition": [],
"child_ref_ids": [],
"child_link_ids": [],
"child_ids": [],
"parent_id": "5e21b85b308c3c66d64e07bc",
"weight": 1,
"tags": [],
"last_state_update": 1583141090805,
"updated": 1583916836283,
"created": 1579268187099,
"state_id": 7,
"class_id": 4,
"operations": [
...
],
"properties": [
{
"name": "AgentId",
"value": "5e21b85b308c3c66d64e07c8",
"type_id": 8,
"id": "5e21b85b308c3c66d64e07d5"
},
...
],
"manual_state": null,
"owner_id": "5e21b752308c3c66d64e072c",
"id": "5e21b85b308c3c66d64e07d2"
},
...
]