WatchGuard Devices API

Manage and query endpoint devices.

OpenAPI Specification

watchguard-devices-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: WatchGuard Cloud Platform Accounts Devices API
  description: The WatchGuard Cloud Platform API provides RESTful access to WatchGuard Cloud account management, including account creation and management, authorization for managed accounts, device and license activations, asset allocations, and operator management. All endpoints require an OAuth 2.0 bearer token and a WatchGuard-API-Key header.
  version: v1
  contact:
    name: WatchGuard Support
    url: https://www.watchguard.com/help/docs/API/
servers:
- url: https://api.usa.cloud.watchguard.com/rest
  description: USA Region
- url: https://api.eu.cloud.watchguard.com/rest
  description: EU Region
- url: https://api.apac.cloud.watchguard.com/rest
  description: APAC Region
tags:
- name: Devices
  description: Manage and query endpoint devices.
paths:
  /accounts/{accountId}/devices:
    get:
      operationId: listDevices
      summary: List Devices
      description: Retrieve a paginated, searchable list of managed endpoint devices for the account. Supports OData-style query parameters.
      tags:
      - Devices
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/ODataTop'
      - $ref: '#/components/parameters/ODataSkip'
      - $ref: '#/components/parameters/ODataSearch'
      - $ref: '#/components/parameters/ODataCount'
      - $ref: '#/components/parameters/ODataOrderby'
      - name: $config
        in: query
        description: Include configuration details in the response.
        schema:
          type: string
      security:
      - bearerAuth: []
        apiKeyAuth: []
      responses:
        '200':
          description: List of managed devices.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /accounts/{accountId}/devicesprotectionstatus:
    get:
      operationId: getDevicesProtectionStatus
      summary: Get Devices Protection Status
      description: Retrieve protection status information for all managed devices.
      tags:
      - Devices
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/ODataTop'
      - $ref: '#/components/parameters/ODataSkip'
      - $ref: '#/components/parameters/ODataSearch'
      - $ref: '#/components/parameters/ODataCount'
      - $ref: '#/components/parameters/ODataOrderby'
      security:
      - bearerAuth: []
        apiKeyAuth: []
      responses:
        '200':
          description: Device protection status list.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /accounts/{accountId}/unmanageddevices:
    get:
      operationId: listUnmanagedDevices
      summary: List Unmanaged Devices
      description: Retrieve devices discovered on the network that are not yet managed.
      tags:
      - Devices
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/ODataTop'
      - $ref: '#/components/parameters/ODataSkip'
      - $ref: '#/components/parameters/ODataSearch'
      - $ref: '#/components/parameters/ODataCount'
      - $ref: '#/components/parameters/ODataOrderby'
      security:
      - bearerAuth: []
        apiKeyAuth: []
      responses:
        '200':
          description: List of unmanaged devices.
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    ODataOrderby:
      name: $orderby
      in: query
      description: Sort results (e.g., hostname+asc).
      schema:
        type: string
    ODataSearch:
      name: $search
      in: query
      description: Text search across supported fields.
      schema:
        type: string
    AccountId:
      name: accountId
      in: path
      required: true
      description: WatchGuard Cloud account ID.
      schema:
        type: string
    ODataTop:
      name: $top
      in: query
      description: Number of records to return (max 3000).
      schema:
        type: integer
        maximum: 3000
    ODataCount:
      name: $count
      in: query
      description: Include total count in response.
      schema:
        type: boolean
    ODataSkip:
      name: $skip
      in: query
      description: Number of records to skip for pagination.
      schema:
        type: integer
  responses:
    Unauthorized:
      description: Unauthorized — invalid or expired access token or API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    Device:
      type: object
      description: An endpoint device managed by WatchGuard Endpoint Security.
      properties:
        deviceId:
          type: string
        hostname:
          type: string
        ipAddress:
          type: string
        operatingSystem:
          type: string
        agentVersion:
          type: string
        protectionStatus:
          type: string
          enum:
          - Protected
          - AtRisk
          - Unprotected
        lastSeen:
          type: string
          format: date-time
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
    DeviceList:
      type: object
      properties:
        value:
          type: array
          items:
            $ref: '#/components/schemas/Device'
        count:
          type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 access token obtained from the WatchGuard Authentication API.
    apiKeyAuth:
      type: apiKey
      in: header
      name: WatchGuard-API-Key
      description: API key from the WatchGuard Cloud Managed Access page.