Zabbix Hosts API

Host configuration and management

OpenAPI Specification

zabbix-hosts-api-openapi.yml Raw ↑
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.