template_get
Retrieve Zabbix templates to review reusable items, triggers, graphs, and discovery rules; filter by host, group, ID, name, or properties for audits and automation.
Instructions
Retrieve templates. Templates are reusable sets of items, triggers, graphs, and discovery rules that can be linked to one or more hosts. When a template is linked to a host, all of its entities are automatically applied to that host. Templates belong to template groups and can be nested (linked to other templates).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return. | |
| filter | No | Return only results whose properties exactly match the given values (a single value or a list of values per key). Example: {"status": 0} or {"status": [0, 1]}. Keys: auto_compress (removed in 7.0), custom_interfaces, flags, host, ipmi_authtype, ipmi_password, ipmi_privilege, ipmi_username, lastaccess (removed in 6.2), maintenance_from, maintenance_status, maintenance_type, maintenanceid, monitored_by (7.0+), name, proxy_address (removed in 7.0), proxy_groupid (7.0+), proxy_hostid (removed in 7.0), proxyid (7.0+), status, templateid, tls_accept, tls_connect, tls_issuer, tls_psk, tls_psk_identity, tls_subject, uuid (6.0+), vendor_name (6.4+), vendor_version (6.4+), wizard_ready (7.4+). Text properties cannot be filtered; use 'search' for them. | |
| output | No | Properties of the template object to return. Pass 'extend' for all, 'count' for the number of matches only, or a list of property names. Default when omitted: templateid, host, name. Properties: auto_compress (removed in 7.0), custom_interfaces, description, flags, host, ipmi_authtype, ipmi_password, ipmi_privilege, ipmi_username, lastaccess (removed in 6.2), maintenance_from, maintenance_status, maintenance_type, maintenanceid, monitored_by (7.0+), name, proxy_address (removed in 7.0), proxy_groupid (7.0+), proxy_hostid (removed in 7.0), proxyid (7.0+), readme (7.4+), status, templateid, tls_accept, tls_connect, tls_issuer, tls_psk, tls_psk_identity, tls_subject, uuid (6.0+), vendor_name (6.4+), vendor_version (6.4+), wizard_ready (7.4+). | |
| search | No | Return results whose string properties contain the given pattern (case-insensitive; '*' is a wildcard when searchWildcardsEnabled is true). Example: {"name": "web"}. Keys: description, host, ipmi_password, ipmi_username, name, proxy_address (removed in 7.0), readme (7.4+), tls_issuer, tls_psk, tls_psk_identity, tls_subject, uuid (6.0+), vendor_name (6.4+), vendor_version (6.4+). | |
| server | No | Target Zabbix server. Available: default. Defaults to 'default' if omitted. | |
| hostids | No | Return only templates linked to the given hosts. | |
| groupids | No | Return only templates that belong to the given template/host groups. | |
| raw_json | No | Strips the security disclaimer preamble from the response so it is pure JSON. Default: false. Requires the bearer token to have 'allow_raw_json' explicitly enabled by an operator in the admin portal - tokens without that policy receive a PolicyError instead. WARNING: setting true bypasses the prompt-injection mitigation marker that wraps untrusted Zabbix data (host names, item descriptions, problem text). LLM clients (Claude, GPT, Cursor, ...) should leave this false; only programmatic non-LLM consumers (Python scripts, n8n workflows that json.loads the result) should set true. | |
| sortfield | No | Sort by one or more of: hostid, host, name (a list for several; pair with 'sortorder'). No other property is sortable. | |
| sortorder | No | Sort order: 'ASC' (ascending) or 'DESC' (descending). | |
| with_items | No | Only return templates that have items. | |
| countOutput | No | Return the count of matching results instead of the actual data. | |
| searchByAny | No | If true, return results matching ANY search field (OR). Default is ALL fields (AND). | |
| templateids | No | Return only templates with the given IDs. | |
| with_graphs | No | Only return templates that have graphs. | |
| extra_params | No | Other native template.get parameters, merged into the request as-is. Parameters: evaltype, graphids, groupCount, inheritedTags (8.0+), itemids, limitSelects, parentTemplateids, tags, triggerids. Switches (true turns one on, false is the same as leaving it out): groupCount. groupCount goes with output='count': the count is then split by the ID filters the method groups by (hostids, groupids ...), one row per ID with 'rowscount'; a single row without such a filter. Sub-object selects (value 'extend', 'count' or a list of property names): selectDashboards (6.0+), selectDiscoveries (deprecated in 7.4, use selectDiscoveryRules), selectDiscoveryRules (7.4+), selectGraphs, selectGroups (removed in 7.2), selectHosts, selectHttpTests, selectInheritedTags (8.0+), selectItems, selectMacros, selectParentTemplates, selectTags, selectTemplateGroups (6.2+), selectTemplates, selectTriggers, selectValueMaps (6.0+). Any other key is refused here, because Zabbix would silently ignore it. For a parameter you are sure exists on your release but is not listed, use zabbix_raw_api_call. | |
| with_triggers | No | Only return templates that have triggers. | |
| with_httptests | No | Only return templates that have web scenarios. | |
| searchWildcardsEnabled | No | If true, enable * and ? wildcards in search patterns. |