OpenAPI Specification
openapi: 3.1.0
info:
title: Zabbix Actions Hosts API
description: The Zabbix API is a JSON-RPC 2.0 HTTP API for programmatically retrieving and modifying the configuration of Zabbix and accessing historical monitoring data. The API is shipped as part of the Zabbix web frontend and accessible at /zabbix/api_jsonrpc.php.
version: '7.0'
contact:
name: Zabbix Support
url: https://www.zabbix.com/support
license:
name: GNU GPL v2
url: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
x-logo:
url: https://www.zabbix.com/assets/img/logo/zabbix_logo.png
servers:
- url: https://{host}/zabbix/api_jsonrpc.php
description: Zabbix Server JSON-RPC Endpoint
variables:
host:
description: Your Zabbix server hostname
default: localhost
tags:
- name: Hosts
description: Host configuration and management
paths:
/host.get:
post:
operationId: host-get
summary: Get Hosts
description: Returns a list of hosts matching the given parameters. Supports filtering by host name, group, template, IP, and many other criteria.
tags:
- Hosts
security:
- ApiToken: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
example:
jsonrpc: '2.0'
method: host.get
params:
output: extend
groupids: '4'
selectInterfaces:
- interfaceid
- ip
id: 3
responses:
'200':
description: List of hosts
content:
application/json:
schema:
$ref: '#/components/schemas/HostListResponse'
x-rpc-method: host.get
/host.create:
post:
operationId: host-create
summary: Create Host
description: Creates one or more new hosts in Zabbix.
tags:
- Hosts
security:
- ApiToken: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
example:
jsonrpc: '2.0'
method: host.create
params:
host: newhost.example.com
interfaces:
- type: 1
main: 1
useip: 1
ip: 192.168.1.1
dns: ''
port: '10050'
groups:
- groupid: '4'
id: 4
responses:
'200':
description: Created host IDs
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcIdsResponse'
x-rpc-method: host.create
/host.update:
post:
operationId: host-update
summary: Update Host
description: Updates an existing host in Zabbix.
tags:
- Hosts
security:
- ApiToken: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
responses:
'200':
description: Updated host IDs
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcIdsResponse'
x-rpc-method: host.update
/host.delete:
post:
operationId: host-delete
summary: Delete Host
description: Deletes hosts from Zabbix by host ID.
tags:
- Hosts
security:
- ApiToken: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
responses:
'200':
description: Deleted host IDs
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcIdsResponse'
x-rpc-method: host.delete
components:
schemas:
HostListResponse:
type: object
properties:
jsonrpc:
type: string
id:
type: integer
result:
type: array
items:
$ref: '#/components/schemas/Host'
error:
$ref: '#/components/schemas/JsonRpcError'
HostInterface:
type: object
properties:
interfaceid:
type: string
hostid:
type: string
type:
type: integer
description: Interface type (1=agent, 2=SNMP, 3=IPMI, 4=JMX)
main:
type: integer
description: Whether this is the default interface (1=yes, 0=no)
useip:
type: integer
description: Whether to use IP (1) or DNS (0)
ip:
type: string
dns:
type: string
port:
type: string
HostGroup:
type: object
properties:
groupid:
type: string
description: Unique host group identifier
name:
type: string
description: Name of the host group
JsonRpcError:
type: object
properties:
code:
type: integer
description: Error code
message:
type: string
description: Short error description
data:
type: string
description: Detailed error message
JsonRpcIdsResponse:
type: object
properties:
jsonrpc:
type: string
id:
type: integer
result:
type: object
properties:
hostids:
type: array
items:
type: string
groupids:
type: array
items:
type: string
itemids:
type: array
items:
type: string
triggerids:
type: array
items:
type: string
eventids:
type: array
items:
type: string
actionids:
type: array
items:
type: string
userids:
type: array
items:
type: string
error:
$ref: '#/components/schemas/JsonRpcError'
JsonRpcRequest:
type: object
required:
- jsonrpc
- method
- id
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: JSON-RPC protocol version
method:
type: string
description: The API method to call (e.g., host.get, user.login)
params:
oneOf:
- type: object
- type: array
description: Method parameters
id:
type: integer
description: Request identifier for correlating responses
auth:
type: string
nullable: true
description: Authentication token (deprecated in Zabbix 5.4+; use Authorization header)
Host:
type: object
properties:
hostid:
type: string
description: Unique host identifier
host:
type: string
description: Technical name of the host
name:
type: string
description: Visible name of the host
status:
type: integer
description: Host status (0=monitored, 1=unmonitored)
interfaces:
type: array
items:
$ref: '#/components/schemas/HostInterface'
groups:
type: array
items:
$ref: '#/components/schemas/HostGroup'
securitySchemes:
ApiToken:
type: apiKey
in: header
name: Authorization
description: Zabbix API token obtained via user.login. Pass as "Bearer {token}" in the Authorization header (Zabbix 5.4+), or in the auth field of the JSON-RPC request body.