API Hub
  • Learn
  • Build
  • Help

Versions

Overview

  • Introduction
  • Authentication
  • Error Codes
  • Rate-Limits
  • Upgrades

    Metadata

    • Overview

      Core Resources

      • Devices
      • Alerts

        Webhooks

        • Introduction
        • Defining a Webhook
        • Event Types
        • Alert Types
        • Webhook invocation, retries and logs
        • Event Handling

          On this page

          • GET /alerts
            • Alert Descriptions
            • Request
            • Response
            • Response Code

          Alerts

          An alert is a condition on the device derived from a set of processed events, parameters and logic.

          GET /alerts#

          The GET /alerts endpoint provides historical and current alert data on KOLO™ devices based on specific conditions. This API enables developers to track and manage device status changes and to integrate alert data into work order management systems, task management platforms, and reporting tools. It is particularly useful for automating workflows, generating event-driven reports, and building a history of alert data over time. This endpoint is ideal for customers who prefer not to create custom alert logic and wish to rely on KOLO’s alert processing.

          Recommended polling intervals: Updates should be made no more frequently than every 1 minute. If using GET /alerts to trigger notifications, a 5-minute interval is advised. To reduce the frequency of polling, consider implementing the webhooks feature for real-time notifications.

          Alert Descriptions#

          alert_typedevice_type impactedDescriptionRecommended Action
          jam_faulttowel
          soap
          sanitizer
          Dispenser will not be able to dispense product. This could be caused by tear bar issues, motor stalls or refills are incorrectly loaded.Remove refill and all excess material or debris. Reinstall refill to clear jam.
          sensor_faulttowel
          soap
          sanitizer
          Sensor out of range, communications fault or handwave sensor issue.Check for obstructions near handwave sensor, then wipe down hand-wave lens and wipe down sensor lens if it is a towel dispenser.
          system_faulttissue
          towel
          soap
          sanitizer
          Device has an internal issue. Device is not functional.Contact GP/KOLO rep for next steps and device replacement.
          battery_outtissue
          towel
          soap
          sanitizer
          Batteries are at critically low level. For automated dispensers (towel, sanitizer and soap) this will result in device not being able to dispense. For non-automated dispensers (tissue) this will result in eventual device_off alert.Replace the existing batteries with fully charged batteries.
          consumable_outtissue
          towel
          soap
          sanitizer
          Refill/consumable is near out or completely out.Replace the depleted refill with a full refill.
          incorrectly_loaded
          sensor_fault
          toto_leak
          toto_safety_check
          tissue
          towel
          soap
          sanitizer
          toto
          Other types of external alertsOther types of external alerts

          Request#

          Query Parameters#

          (all parameters are optional)

          ParameterTypeDescription
          alert_idstringUnique identifier for this specific alert
          building_idstringUnique identifier for the building where the alert originated
          floor_idstringUnique identifier for the floor where the alert originated
          room_idstringUnique identifier for the room where the alert originated
          device_location_idintegerUnique identifier for the device’s location. Filters alerts for a specific device location
          alert_statusstringCurrent status of the alert (e.g., OPEN, CLOSED). Filter by alert status. Possible values are OPEN or CLOSED. Omit to retrieve alerts regardless of status
          alert_typestringType of alert (e.g., DEVICE_OFF). Filter alerts by specific alert type
          resolution_typestringDescribes how the alert was resolved:
          resolved: By a device event
          resolved_by_offline: Auto-resolved due to device going offline
          resolved_by_user: Manually resolved by user.
          start_datestringStart date in UTC ISO 8601 format. Defaults to 7 days before today at 00:00:00 UTC if not specified.
          If alert_status is OPEN or not specified, alerts will be filtered by alert creation date.
          If alert_status is CLOSED, alerts will be filtered by alert resolution date.
          end_datestringEnd date in UTC ISO 8601 format. Defaults to tomorrow’s date at 00:00:00 UTC if not specified.
          If alert_status is OPEN or not specified, alerts will be filtered by alert creation date.
          If alert_status is CLOSED, alerts will be filtered by alert resolution date.
          page_sizeintegerNumber of alerts per page. Defaults to 100, with a maximum limit of 500.
          nextstringBase64 encoded cursor to retrieve the next page of alerts. If specified, all other query parameters (except page_size) will be ignored.
          prevstringBase64 encoded cursor to retrieve the previous page of alerts. If specified, all other query parameters (except page_size) will be ignored.

          Response#

          STATUS CODE - 200: 200 response

          Attributes#

          AttributeTypeDescription
          alert_idstringUnique identifier for this specific alert
          device_location_idstringUnique identifier for the device’s location within the room
          device_macidarrayUnique 12-digit hexadecimal identifier of the physical device installed in the device location
          alert_statusstringCurrent status of the alert (e.g., OPEN, CLOSED)
          alert_typestringType of alert (e.g., DEVICE_OFF)
          created_datestringTimestamp of when the alert was created (in milliseconds)
          resolved_datestringTimestamp of when the alert was resolved (in milliseconds), or null if still open
          resolution_typestringDescribes how the alert was resolved:
          resolved: By a device event
          resolved_by_offline: Auto-resolved due to device going offline
          resolved_by_user: Manually resolved by user
          overduebooleanBoolean flag indicating if the alert is overdue for resolution
          refill_countintegerrefill_count limited to Consumable out and Battery out. For other alerts, it would be 0

          Consumable Out : Count would be initialised on the product low or product out. Alert raised on alert preference either low or out
          - Quad Tissue device type having 4 rolls consumable out or low: Count would be 4
          - Quad Tissue device type having 2 rolls consumable out or low: Count would be 2
          - Quad Tissue device type having 1 rolls consumable out or low: Count would be 1

          Battery Out : Count would be initialised on the depletion state of battery set
          - Quad Tissue device type having both battery set depleted: Count would be 2
          - Vertical Tissue, Towel or any other device type having battery set depleted : Count would be 1

          Response Code#

          Status CodeDescription
          200Successful Execution
          400Bad Request
          401Authorization information is missing or invalid
          403x-api-key or Authorization in header is missing or invalid
          404Resource or parameter specified cannot be found
          500Internal Server Error

          Sample Response#

            {
              "next": "base64 encoded cursor ",
              "prev": "base64 encoded cursor",
              "alerts": [{
                "alert_id": "9c95a25b-1587-4376-b214-c5d4db9212e7",
                "device_location_id": "29325843",
                "device_macid": ["a528b8c4defg"],
                "alert_status": "CLOSED",
                "refill_count": 1,
                "alert_type": "BATTERY_OUT",
                "created_date": "2025-02-26T01:08:14.424Z",
                "resolved_date": "2025-02-26T03:08:25.23Z",
                "resolution_type": "RESOLVED_BY_OFFLINE",
                "overdue": false
              },
              { }
             ]
            }