The Zabbix API supports the following data types as input:
Type | Description |
---|---|
ID | A unique identifier used to reference an entity. |
boolean | A boolean value (either true or false ). |
flag | A value that is considered to be true if passed and not equal to null ; otherwise, the value is considered to be false . |
integer | A whole number. |
float | A floating point number. |
string | A text string. |
text | A longer text string. |
timestamp | A Unix timestamp. |
array | An ordered sequence of values (a plain array). |
object | An associative array. |
query | A value that defines the data to be returned. The value can be defined as an array of property names (to return only specific properties), or as one of the predefined values:extend - returns all object properties;count - returns the number of retrieved records, supported only by certain subselects. |
Zabbix API always returns values as strings or arrays only.
Some of the object properties are marked with short labels to describe their behavior. The following labels are used:
type
is set to "Simple check", "External check", "SSH agent", "TELNET agent", or "HTTP agent");operationtype
is set to "global script" and opcommand_hst
is not set).For update operations a property is considered as "set" when setting it during the update operation.
Properties that are not marked with labels are optional.
Some of the operation parameters are marked with short labels to describe their behavior for the operation. The following labels are used:
operating_mode
of Proxy object is set to "passive proxy");Parameters that are not marked with labels are optional.
Reserved ID value "0" can be used to filter elements and to remove referenced objects. For example, to remove a referenced proxy from a host, proxyid should be set to 0 ("proxyid": "0") or to filter hosts monitored by server option proxyids should be set to 0 ("proxyids": "0").
The following parameters are supported by all get
methods:
Parameter | Type | Description |
---|---|---|
countOutput | boolean | Return the number of records in the result instead of the actual data. |
editable | boolean | If set to true , return only objects that the user has write permissions to.Default: false . |
excludeSearch | boolean | Return results that do not match the criteria given in the search parameter. |
filter | object | Return only those results that exactly match the given filter. Accepts an object, where the keys are property names, and the values are either a single value or an array of values to match against. Does not support properties of text data type. |
limit | integer | Limit the number of records returned. |
output | query | Object properties to be returned. Default: extend . |
preservekeys | boolean | Use IDs as keys in the resulting array. |
search | object | Return results that match the given pattern (case-insensitive). Accepts an object, where the keys are property names, and the values are strings to search for. If no additional options are given, this will perform a LIKE "%…%" search.Supports only properties of string and text data type. |
searchByAny | boolean | If set to true , return results that match any of the criteria given in the filter or search parameter instead of all of them.Default: false . |
searchWildcardsEnabled | boolean | If set to true , enables the use of "*" as a wildcard character in the search parameter.Default: false . |
sortfield | string/array | Sort the result by the given properties. Refer to a specific API get method description for a list of properties that can be used for sorting. Macros are not expanded before sorting. If no value is specified, data will be returned unsorted. |
sortorder | string/array | Order of sorting. If an array is passed, each value will be matched to the corresponding property given in the sortfield parameter.Possible values: ASC - (default) ascending;DESC - descending. |
startSearch | boolean | The search parameter will compare the beginning of fields, that is, perform a LIKE "…%" search instead.Ignored if searchWildcardsEnabled is set to true . |
Does the user have permission to write to hosts whose names begin with "MySQL" or "Linux" ?
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"countOutput": true,
"search": {
"host": ["MySQL", "Linux"]
},
"editable": true,
"startSearch": true,
"searchByAny": true
},
"id": 1
}
Response:
Zero result means no hosts with read/write permissions.
Count the number of hosts whose names do not contain the substring "ubuntu"
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"countOutput": true,
"search": {
"host": "ubuntu"
},
"excludeSearch": true
},
"id": 1
}
Response:
Find hosts whose name contains word "server" and have interface ports "10050" or "10071". Sort the result by host name in descending order and limit it to 5 hosts.
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": ["hostid", "host"],
"selectInterfaces": ["port"],
"filter": {
"port": ["10050", "10071"]
},
"search": {
"host": "*server*"
},
"searchWildcardsEnabled": true,
"searchByAny": true,
"sortfield": "host",
"sortorder": "DESC",
"limit": 5
},
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": [
{
"hostid": "50003",
"host": "WebServer-Tomcat02",
"interfaces": [
{
"port": "10071"
}
]
},
{
"hostid": "50005",
"host": "WebServer-Tomcat01",
"interfaces": [
{
"port": "10071"
}
]
},
{
"hostid": "50004",
"host": "WebServer-Nginx",
"interfaces": [
{
"port": "10071"
}
]
},
{
"hostid": "99032",
"host": "MySQL server 01",
"interfaces": [
{
"port": "10050"
}
]
},
{
"hostid": "99061",
"host": "Linux server 01",
"interfaces": [
{
"port": "10050"
}
]
}
],
"id": 1
}
If you add the parameter "preservekeys" to the previous request, the result is returned as an associative array, where the keys are the id of the objects.
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": ["hostid", "host"],
"selectInterfaces": ["port"],
"filter": {
"port": ["10050", "10071"]
},
"search": {
"host": "*server*"
},
"searchWildcardsEnabled": true,
"searchByAny": true,
"sortfield": "host",
"sortorder": "DESC",
"limit": 5,
"preservekeys": true
},
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": {
"50003": {
"hostid": "50003",
"host": "WebServer-Tomcat02",
"interfaces": [
{
"port": "10071"
}
]
},
"50005": {
"hostid": "50005",
"host": "WebServer-Tomcat01",
"interfaces": [
{
"port": "10071"
}
]
},
"50004": {
"hostid": "50004",
"host": "WebServer-Nginx",
"interfaces": [
{
"port": "10071"
}
]
},
"99032": {
"hostid": "99032",
"host": "MySQL server 01",
"interfaces": [
{
"port": "10050"
}
]
},
"99061": {
"hostid": "99061",
"host": "Linux server 01",
"interfaces": [
{
"port": "10050"
}
]
}
},
"id": 1
}