> ## Documentation index
> Fetch the complete documentation index at: https://developer.rhombus.com/llms.txt
> Use it to discover all available pages before exploring further.

# Triage a device connection/recording issue

> Triage a device connection/recording issue

```http
POST https://api2.rhombussystems.com/api/help/triageDevice
```

EU organizations send the same request to `https://api2.eu.rhombussystems.com`.

## Authentication and parameters

- `x-auth-apikey` (header, required): Your Rhombus API key. Must be accompanied by the `x-auth-scheme` header set to `api-token` (or `partner-api-token` for partner endpoints).
- `Authorization` (header): instead of an API key, an OAuth access token (`Bearer <token>`) with the `write` scope.
- `x-auth-scheme` (header, string, default: `api-token`): Authentication scheme identifier. Use `api-token` or `partner-api-token` with the `x-auth-apikey` header, `api` or `partner-api` with `x-auth-apikey` plus a client certificate, `api-oauth-token` or `partner-api-oauth-token` with `x-auth-access-token`, and `federated-token` with `x-auth-ft`. A request with `Authorization: Bearer <token>` and no `x-auth-scheme` is treated as OAuth, and `federated-token` may also be sent as the `x-auth-scheme` and `x-auth-ft` query parameters. One of: `api-token`, `api`, `api-oauth-token`, `federated-token`, `partner-api-token`, `partner-api`, `partner-api-oauth-token`.
- `x-auth-org` (header, string<RUUID>): Client organization UUID (22-character RUUID), for partner credentials only. With it the call runs in that client organization with the partner support authority's role. Without it a partner credential runs as the partner organization, which outside the partner endpoints is deprecated (responses carry `Deprecation` and `Sunset: Tue, 05 Jan 2027 00:00:00 GMT`). A malformed value returns 400 `INVALID_AUTH_ORG`; a client organization the partner cannot access returns 403 `PARTNER_CLIENT_ACCESS_DENIED`.

## Request body

Content type: `application/json`. Request object for triaging device connection/recording issues.

- `deviceUuid` (string<RUUID> | null): base 64 (url-safe) uuid string
- `startDateSec` (integer<int64> | null): Start date in seconds for triage analysis

## Response 200

OK. Content type: `application/json`

- `error` (boolean | null)
- `errorCode` (string | null): Stable, machine-readable code for the failure (one of the ApiErrorCode catalog) when error is true. Branch on this, not on errorMsg.
- `errorMsg` (string | null)
- `firmwareUpdates` (array<object> | null): List of firmware update diagnostic events
- `hardwareFailureEvents` (array<object> | null): List of hardware failure diagnostic events
- `message` (string | null): Triage analysis message
- `presenceWindows` (array<object> | null): List of device presence time windows
- `suggestedArticles` (array<string | null> | null): List of suggested help articles for the device issue
- `uptimeWindows` (array<object> | null): List of device uptime time windows
- `warningMsg` (string | null)

## Errors

Also 400, 401, 403, 429, 500, 503 with the standard error body (`errorCode`, `errorMsg`): https://developer.rhombus.com/errors

## OpenAPI

````yaml
openapi: 3.0.1
info:
  title: Rhombus API
  version: "1.0"
servers:
  - description: Production Server
    url: https://api2.rhombussystems.com
security:
  - ApiKeyAuth: []
paths:
  /api/help/triageDevice:
    post:
      description: Triage a device connection/recording issue
      operationId: triageDevice
      parameters:
        - description: "Authentication scheme identifier. Use `api-token` or `partner-api-token` with the `x-auth-apikey` header, `api` or `partner-api` with `x-auth-apikey` plus a client certificate, `api-oauth-token` or `partner-api-oauth-token` with `x-auth-access-token`, and `federated-token` with `x-auth-ft`. A request with `Authorization: Bearer <token>` and no `x-auth-scheme` is treated as OAuth, and `federated-token` may also be sent as the `x-auth-scheme` and `x-auth-ft` query parameters."
          example: api-token
          in: header
          name: x-auth-scheme
          required: false
          schema:
            default: api-token
            enum:
              - api-token
              - api
              - api-oauth-token
              - federated-token
              - partner-api-token
              - partner-api
              - partner-api-oauth-token
            type: string
        - description: "Client organization UUID (22-character RUUID), for partner credentials only. With it the call runs in that client organization with the partner support authority's role. Without it a partner credential runs as the partner organization, which outside the partner endpoints is deprecated (responses carry `Deprecation` and `Sunset: Tue, 05 Jan 2027 00:00:00 GMT`). A malformed value returns 400 `INVALID_AUTH_ORG`; a client organization the partner cannot access returns 403 `PARTNER_CLIENT_ACCESS_DENIED`."
          in: header
          name: x-auth-org
          required: false
          schema:
            format: RUUID
            maxLength: 22
            minLength: 22
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Help_TriageDeviceWSRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Help_TriageDeviceWSResponse"
          description: OK
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
        "429":
          $ref: "#/components/responses/TooManyRequests"
        "500":
          $ref: "#/components/responses/InternalServerError"
        "503":
          $ref: "#/components/responses/ServiceUnavailable"
      security:
        - ApiKeyAuth: []
        - oauth2:
            - write
      summary: Triage a device connection/recording issue
      tags:
        - Help Webservice
components:
  schemas:
    Help_TriageDeviceWSRequest:
      description: Request object for triaging device connection/recording issues.
      properties:
        deviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        startDateSec:
          description: Start date in seconds for triage analysis
          example: 1642233600
          format: int64
          nullable: true
          type: integer
      type: object
    Help_TriageDeviceWSResponse:
      description: Response object containing device triage diagnostic information.
      properties:
        error:
          nullable: true
          type: boolean
        errorCode:
          description: Stable, machine-readable code for the failure (one of the ApiErrorCode catalog) when error is true. Branch on this, not on errorMsg.
          nullable: true
          type: string
        errorMsg:
          nullable: true
          type: string
        firmwareUpdates:
          description: List of firmware update diagnostic events
          items:
            $ref: "#/components/schemas/DiagnosticEventType"
          nullable: true
          type: array
        hardwareFailureEvents:
          description: List of hardware failure diagnostic events
          items:
            $ref: "#/components/schemas/DiagnosticEventType"
          nullable: true
          type: array
        message:
          description: Triage analysis message
          example: Device appears to be functioning normally
          nullable: true
          type: string
        presenceWindows:
          description: List of device presence time windows
          items:
            $ref: "#/components/schemas/TimeWindowSeconds"
          nullable: true
          type: array
        suggestedArticles:
          description: List of suggested help articles for the device issue
          items:
            description: List of suggested help articles for the device issue
            nullable: true
            type: string
          nullable: true
          type: array
        uptimeWindows:
          description: List of device uptime time windows
          items:
            $ref: "#/components/schemas/TimeWindowSeconds"
          nullable: true
          type: array
        warningMsg:
          nullable: true
          type: string
      type: object
    DiagnosticEventType:
      description: List of diagnostic events
      properties:
        activity:
          $ref: "#/components/schemas/DiagnosticActivityEnum"
        apMac:
          nullable: true
          type: string
        asi:
          nullable: true
          type: string
        componentCompositeUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        connectionUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        defaultInterface:
          nullable: true
          type: string
        defaultInterfaceMac:
          nullable: true
          type: string
        deviceName:
          nullable: true
          type: string
        deviceType:
          $ref: "#/components/schemas/DeviceTypeEnum"
        deviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        firmwareVersion:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        reportingDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        rssi:
          format: int32
          nullable: true
          type: integer
        ssid:
          nullable: true
          type: string
        timestamp:
          format: date-time
          nullable: true
          type: string
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        wifiSignalStrength:
          format: int32
          nullable: true
          type: integer
      type: object
    DiagnosticActivityEnum:
      enum:
        - CAMERA_CONNECTED
        - CAMERA_DISCONNECTED
        - STARTUP
        - GATEWAY_CONNECTED
        - GATEWAY_DISCONNECTED
        - UPDATE_STARTED
        - UPDATE_FIRMWARE_DOWNLOADED
        - UPDATE_FIRMWARE_APPLIED
        - UPDATE_STARTING_REBOOT
        - UPDATE_FAILED_MD5_MISMATCH
        - UPDATE_FAILED_ACCESS_DENIED
        - UPDATE_FAILED_MITM
        - UPDATE_FAILED_CONNNECTION_REFUSED
        - UPDATE_FAILED_CONNNECTION_TIMEOUT
        - UPDATE_FAILED_CONNECTION_REFUSED
        - UPDATE_FAILED_CONNECTION_TIMEOUT
        - UPDATE_FAILED_DNS_FAILURE
        - UPDATE_RUNNING
        - UPDATE_HALTED_FOR_INVESTIGATION
        - UPDATE_HALT_CLEARED
        - UPDATE_HALT_STATE_ACTIVE
        - UPDATE_REFUSED_HALTED
        - BLE_CONNECTED
        - BLE_CONNECTION_FAILED
        - BLE_DISCONNECTED
        - BLE_OP_SUCCESS
        - BLE_OP_FAILURE
        - UPLOAD_CLIP_SUCCESS
        - UPLOAD_CLIP_FAILURE
        - NOTIFICATION_FAILURE
        - USB_FAILURE_REBOOT
        - PERSISTENT_STORAGE_FAILURE
        - PING
        - FORCED_REBOOT
        - AUTO_REBOOT
        - AUDIO_HARDWARE_NOT_DETECTED
        - ENCRYPTED_CONTAINER_FAILURE_CREATE
        - ENCRYPTED_CONTAINER_FAILURE_OPEN
        - ENCRYPTED_CONTAINER_FAILURE_MOUNT
        - VIDEO_HARDWARE_FAILURE
        - WIFI_NETWORK_CHANGED
        - AI_ENGINE_DOWNLOADED
        - AI_ENGINE_DOWNLOAD_FAILED_MD5_MISMATCH
        - AI_ENGINE_CONFIGURED
        - AI_ENGINE_CONFIGURATION_FAILED
        - MITM_FAILURE
        - SERVER_RECONNECT
        - AP_CHANGED
        - WATCHDOG_KILLED_AGENT
        - WATCHDOG_DID_RESET
        - CLIMATE_OFFLINE
        - CLIMATE_ONLINE
        - CLIMATE_LOW_BATTERY
        - CLIMATE_PROBE_CONNECTED
        - CLIMATE_PROBE_DISCONNECTED
        - DOOR_OFFLINE
        - DOOR_ONLINE
        - DOOR_LOW_BATTERY
        - OCCUPANCY_SENSOR_ONLINE
        - OCCUPANCY_SENSOR_OFFLINE
        - OCCUPANCY_SENSOR_LOW_BATTERY
        - BUTTON_OFFLINE
        - BUTTON_ONLINE
        - BUTTON_LOW_BATTERY
        - PROXIMITY_LOW_BATTERY
        - ROBOT_LOW_BATTERY
        - DOOR_CONTROLLER_CONNECTED
        - DOOR_CONTROLLER_DISCONNECTED
        - APERIO_LOW_BATTERY
        - APERIO_FLAT_BATTERY
        - APERIO_OK_BATTERY
        - APERIO_GW_CONNECTED
        - APERIO_GW_DISCONNECTED
        - APERIO_DEVICE_CONNECTED
        - APERIO_DEVICE_DISCONNECTED
        - SCHLAGE_LOW_BATTERY
        - SCHLAGE_CRITICAL_BATTERY
        - SCHLAGE_OK_BATTERY
        - SCHLAGE_GW_CONNECTED
        - SCHLAGE_GW_DISCONNECTED
        - SCHLAGE_APM_CONNECTED
        - SCHLAGE_APM_DISCONNECTED
        - BADGE_READER_CONNECTED
        - BADGE_READER_DISCONNECTED
        - REBOOT
        - NETWORK_INTERRUPTION
        - OPENPATH_WEBHOOK_FAILURE
        - TOAST_WEBHOOK_FAILURE
        - KISI_WEBHOOK_FAILURE
        - BRIVO_WEBHOOK_FAILURE
        - HALO_WEBHOOK_FAILURE
        - SALTO_WEBHOOK_FAILURE
        - SQUARE_WEBHOOK_FAILURE
        - BUTTERFLYMX_WEBHOOK_FAILURE
        - ENVOY_WEBHOOK_FAILURE
        - GENEA_WEBHOOK_FAILURE
        - PRODATAKEY_WEBHOOK_FAILURE
        - AMT_WEBHOOK_FAILURE
        - PLACEOS_WEBHOOK_FAILURE
        - OMNIALERT_WEBHOOK_FAILURE
        - FLIC_WEBHOOK_FAILURE
        - SHELLY_WEBHOOK_FAILURE
        - PIMLOC_WEBHOOK_FAILURE
        - NINEONEONECELLULAR_WEBHOOK_FAILURE
        - HONEYWELL_ELEMENTS_WEBHOOK_FAILURE
        - HONEYWELL_ONGUARD_WEBHOOK_FAILURE
        - TRITON_WEBHOOK_FAILURE
        - EXTERNAL_WEBHOOK_FAILURE
        - VOICE_CALL_INITIATED
        - VOICE_CALL_ANSWERED
        - VOICE_CALL_REJECTED_AS_MACHINE
        - VOICE_CALL_COMPLETED
        - VOICE_CALL_NO_ANSWER
        - VOICE_CALL_FAILED
        - VOICE_CALL_SKIPPED
        - CV_FAILURE
        - NFC_HW_FAILURE
        - CONFIG_ERROR
        - HW_FAILURE
        - BLE_HW_RECOVERED
        - BLE_HW_FAILURE
        - KEYPAD_ONLINE
        - KEYPAD_OFFLINE
        - ALM_OVERAGE_APPROACHING
        - ALM_OVERAGE_REACHED
        - ALM_OVERAGE_EXCEEDED
        - ALM_EXCESSIVE_VERIFICATIONS
        - KIOSK_OFFLINE
        - KIOSK_ONLINE
        - TUNNELED_DEVICE_CONNECTED
        - TUNNELED_DEVICE_DISCONNECTED
        - SD_CARD_CHANGED
        - SD_CARD_NOT_FOUND
        - SUPERVISION_CUT_DETECTED
        - SUPERVISION_SHORT_DETECTED
        - SUPERVISION_INVALID_SETUP
        - THIRD_PARTY_DEVICE_CONNECTED
        - THIRD_PARTY_DEVICE_DISCONNECTED
        - NVR_STREAMING_STATUS
        - STORAGE_SM
        - DEVICE_OFFLINE_EXTENDED
        - DEVICE_OFFLINE_RECOVERED
        - DEVICES_OFFLINE_THRESHOLD
        - CLOUD_ARCHIVE_LAGGING
        - CLOUD_ARCHIVE_RECOVERED
        - LOCAL_RECORDING_INTERRUPTED
        - LOCAL_RECORDING_RECOVERED
        - UNKNOWN
      type: string
    DeviceTypeEnum:
      enum:
        - BLE_TRACKER
        - CAMERA
        - DOOR_SENSOR
        - ENVIRONMENTAL_SENSOR
        - OCCUPANCY_SENSOR
        - AUDIO_GATEWAY
        - EXECUTABLE
        - BADGE_READER
        - DOOR_CONTROLLER
        - BLE_BUTTON
        - IO_BOARD
        - ENVIRONMENTAL_GATEWAY
        - NVR
        - ROBOT
        - UNKNOWN
      type: string
    TimeWindowSeconds:
      description: List of uptime windows for the device
      properties:
        durationSeconds:
          format: int64
          nullable: true
          type: integer
        startSeconds:
          format: int64
          nullable: true
          type: integer
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: Your Rhombus API key. Must be accompanied by the `x-auth-scheme` header set to `api-token` (or `partner-api-token` for partner endpoints).
      in: header
      name: x-auth-apikey
      type: apiKey
    oauth2:
      description: 'OAuth 2.0 authorization code flow with PKCE (`S256`). Send the access token as `Authorization: Bearer <token>`. Each operation lists the scopes it requires; a token without them is refused 403 with `WWW-Authenticate: Bearer error="insufficient_scope"`.'
      flows:
        authorizationCode:
          authorizationUrl: https://console.rhombus.com/oauth/authorize
          refreshUrl: https://auth-web.rhombussystems.com/oauth/token
          scopes:
            physical: Unlock doors and elevators, lockdown, alarms, speakers and robots
            read: View cameras, footage and settings
            write: Change settings and data
          tokenUrl: https://auth-web.rhombussystems.com/oauth/token
      type: oauth2
````
