# Appendix 1. Reference commentary

### Notation

#### Data types

The Zabbix API supports the following data types:

|Type|Description|
|----|-----------|
|bool|A boolean value, accepts either `true` or `false`.|
|flag|The value is considered to be `true` if it is passed and not equal to `null` and `false` otherwise.|
|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, that is, a plain array.|
|object|An associative array.|
|query|A value which defines, what data should be returned.<br><br>Can be defined as an array of property names to return only specific properties, or as one of the predefined values:<br>`extend` - returns all object properties;<br>`count` - returns the number of retrieved records, supported only by certain subselects.|

#### Property labels

Some of the objects properties are marked with short labels to describe
their behavior. The following labels are used:

-   *readonly* - the value of the property is set automatically and
    cannot be defined or changed by the client;
-   *constant* - the value of the property can be set when creating an
    object, but cannot be changed after.

### Common "get" method parameters

The following parameters are supported by all `get` methods:

|Parameter|Type|Description|
|---------|----|-----------|
|countOutput|flag|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.<br><br>Default: `false`.|
|excludeSearch|flag|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.<br><br>Accepts an array, where the keys are property names, and the values are either a single value or an array of values to match against.<br><br>Doesn't work for `text` fields.|
|limit|integer|Limit the number of records returned.|
|output|query|Object properties to be returned.<br><br>Default: `extend`.|
|preservekeys|flag|Use IDs as keys in the resulting array.|
|search|object|Return results that match the given wildcard search.<br><br>Accepts an array, 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.<br><br>Works only for `string` and `text` fields.|
|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.<br><br>Default: `false`.|
|searchWildcardsEnabled|boolean|If set to `true` enables the use of "\*" as a wildcard character in the `search` parameter.<br><br>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.|
|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.<br><br>Possible values are:<br>`ASC` - ascending;<br>`DESC` - descending.|
|startSearch|flag|The `search` parameter will compare the beginning of fields, that is, perform a `LIKE "…%"` search instead.|
