ThingsBoard Notifications API

Manage notification requests, rules, templates, and targets across email, SMS, Slack, MS Teams, mobile push, and web delivery channels. 24 endpoints.

ThingsBoard Notifications API is one of 15 APIs that ThingsBoard publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include IoT, Notifications, Messaging, Email, and Slack. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

thingsboard-notifications-openapi.yml Raw ↑
# ThingsBoard ThingsBoard Notifications API
# Source: https://demo.thingsboard.io/v3/api-docs (Apache 2.0)
openapi: 3.1.0
info:
  title: ThingsBoard Notifications API
  description: "ThingsBoard Notifications API \u2014 subset of the ThingsBoard REST API (open-source IoT platform). Covers: Notification, Notification Rule, Notification Target, Notification Template."
  version: 4.3.0.3DEMO
  contact:
    name: ThingsBoard team
    url: https://thingsboard.io
    email: [email protected]
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://demo.thingsboard.io
  description: ThingsBoard Live Demo
- url: http://localhost:8080
  description: Local ThingsBoard server
tags:
- name: notification-controller
  description: Notification
- name: notification-rule-controller
  description: Notification Rule
- name: notification-target-controller
  description: Notification Target
- name: notification-template-controller
  description: Notification Template
paths:
  /api/notifications/read:
    put:
      tags:
      - notification-controller
      summary: Mark All Notifications as Read (markAllNotificationsAsRead)
      description: 'Marks all unread notifications as read.


        Available for any authorized user. '
      operationId: markAllNotificationsAsRead
      parameters:
      - name: deliveryMethod
        in: query
        description: Delivery method
        required: false
        schema:
          type: string
          enum:
          - WEB
          - MOBILE_APP
      responses:
        '200':
          description: OK
  /api/notification/{id}/read:
    put:
      tags:
      - notification-controller
      summary: Mark Notification as Read (markNotificationAsRead)
      description: 'Marks notification as read by its id.


        Available for any authorized user. '
      operationId: markNotificationAsRead
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
  /api/notification/template:
    post:
      tags:
      - notification-template-controller
      summary: Save Notification Template (saveNotificationTemplate)
      description: "Creates or updates notification template.\n\nHere is an example of template to send notification via Web, SMS and Slack:\n```json\n{\n  \"name\": \"Greetings\",\n  \"notificationType\"\
        : \"GENERAL\",\n  \"configuration\": {\n    \"deliveryMethodsTemplates\": {\n      \"WEB\": {\n        \"enabled\": true,\n        \"subject\": \"Greetings\",\n        \"body\": \"Hi there, ${recipientTitle}\"\
        ,\n        \"additionalConfig\": {\n          \"icon\": {\n            \"enabled\": true,\n            \"icon\": \"back_hand\",\n            \"color\": \"#757575\"\n          },\n          \"actionButtonConfig\"\
        : {\n            \"enabled\": false\n          }\n        },\n        \"method\": \"WEB\"\n      },\n      \"SMS\": {\n        \"enabled\": true,\n        \"body\": \"Hi there, ${recipientTitle}\"\
        ,\n        \"method\": \"SMS\"\n      },\n      \"SLACK\": {\n        \"enabled\": true,\n        \"body\": \"Hi there, @${recipientTitle}\",\n        \"method\": \"SLACK\"\n      }\n    }\n  }\n\
        }\n```\n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
      operationId: saveNotificationTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationTemplate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationTemplate'
  /api/notification/target:
    post:
      tags:
      - notification-target-controller
      summary: Save Notification Target (saveNotificationTarget)
      description: "Creates or updates notification target.\n\nAvailable `configuration` types are `PLATFORM_USERS` and `SLACK`.\nFor `PLATFORM_USERS` the `usersFilter` must be specified. For tenant, there\
        \ are following users filter types available: `USER_LIST`, `CUSTOMER_USERS`, `TENANT_ADMINISTRATORS`, `ALL_USERS`, `ORIGINATOR_ENTITY_OWNER_USERS`, `AFFECTED_USER`.\nFor sysadmin: `TENANT_ADMINISTRATORS`,\
        \ `AFFECTED_TENANT_ADMINISTRATORS`, `SYSTEM_ADMINISTRATORS`, `ALL_USERS`.\n\nHere is an example of tenant-level notification target to send notification to customer's users:\n```json\n{\n  \"name\"\
        : \"Users of Customer A\",\n  \"configuration\": {\n    \"type\": \"PLATFORM_USERS\",\n    \"usersFilter\": {\n      \"type\": \"CUSTOMER_USERS\",\n      \"customerId\": \"32499a20-d785-11ed-a06c-21dd57dd88ca\"\
        \n    },\n    \"description\": \"Users of Customer A\"\n  }\n}\n```\n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
      operationId: saveNotificationTarget
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationTarget'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationTarget'
  /api/notification/target/recipients:
    post:
      tags:
      - notification-target-controller
      summary: Get Recipients for Notification Target Config (getRecipientsForNotificationTargetConfig)
      description: 'Returns the page of recipients for such notification target configuration.


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: getRecipientsForNotificationTargetConfig
      parameters:
      - name: pageSize
        in: query
        description: Maximum amount of entities in a one page
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Sequence number of page starting from 0
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationTarget'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDataUser'
  /api/notification/settings:
    get:
      tags:
      - notification-controller
      summary: Get Notification Settings (getNotificationSettings)
      description: 'Retrieves notification settings for this tenant or sysadmin.


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: getNotificationSettings
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationSettings'
    post:
      tags:
      - notification-controller
      summary: Save Notification Settings (saveNotificationSettings)
      description: "Saves notification settings for this tenant or sysadmin.\n`deliveryMethodsConfigs` of the settings must be specified.\n\nHere is an example of the notification settings with Slack configuration:\n\
        ```json\n{\n  \"deliveryMethodsConfigs\": {\n    \"SLACK\": {\n      \"method\": \"SLACK\",\n      \"botToken\": \"xoxb-....\"\n    }\n  }\n}\n```\n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN'\
        \ authority."
      operationId: saveNotificationSettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationSettings'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationSettings'
  /api/notification/settings/user:
    get:
      tags:
      - notification-controller
      operationId: getUserNotificationSettings
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserNotificationSettings'
    post:
      tags:
      - notification-controller
      operationId: saveUserNotificationSettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserNotificationSettings'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserNotificationSettings'
  /api/notification/rule:
    post:
      tags:
      - notification-rule-controller
      summary: Save Notification Rule (saveNotificationRule)
      description: "Creates or updates notification rule. \n\nMandatory properties are `name`, `templateId` (of a template with `notificationType` matching to rule's `triggerType`), `triggerType`, `triggerConfig`\
        \ and `recipientConfig`. Additionally, you may specify rule `description` inside of `additionalConfig`.\n\nTrigger type of the rule cannot be changed. Available trigger types for tenant: `ENTITY_ACTION`,\
        \ `ALARM`, `ALARM_COMMENT`, `ALARM_ASSIGNMENT`, `DEVICE_ACTIVITY`, `RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT`.\nFor sysadmin, there are following trigger types available: `ENTITIES_LIMIT`, `API_USAGE_LIMIT`,\
        \ `NEW_PLATFORM_VERSION`.\n\nHere is an example of notification rule to send notification when a device, asset or customer is created or deleted:\n```json\n{\n  \"name\": \"Entity action\",\n  \"\
        templateId\": {\n    \"entityType\": \"NOTIFICATION_TEMPLATE\",\n    \"id\": \"32117320-d785-11ed-a06c-21dd57dd88ca\"\n  },\n  \"triggerType\": \"ENTITY_ACTION\",\n  \"triggerConfig\": {\n    \"\
        entityTypes\": [\n      \"CUSTOMER\",\n      \"DEVICE\",\n      \"ASSET\"\n    ],\n    \"created\": true,\n    \"updated\": false,\n    \"deleted\": true,\n    \"triggerType\": \"ENTITY_ACTION\"\
        \n  },\n  \"recipientsConfig\": {\n    \"targets\": [\n      \"320f2930-d785-11ed-a06c-21dd57dd88ca\"\n    ],\n    \"triggerType\": \"ENTITY_ACTION\"\n  },\n  \"additionalConfig\": {\n    \"description\"\
        : \"Send notification to tenant admins or customer users when a device, asset or customer is created\"\n  },\n  \"templateName\": \"Entity action notification\",\n  \"deliveryMethods\": [\n    \"\
        WEB\"\n  ]\n}\n```\n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
      operationId: saveNotificationRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationRule'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationRule'
  /api/notification/request:
    post:
      tags:
      - notification-controller
      summary: Create Notification Request (createNotificationRequest)
      description: "Processes notification request.\nMandatory request properties are `targets` (list of targets ids to send notification to), and either `templateId` (existing notification template id)\
        \ or `template` (to send notification without saving the template).\nOptionally, you can set `sendingDelayInSec` inside the `additionalConfig` field to schedule the notification.\n\nFor each enabled\
        \ delivery method in the notification template, there must be a target in the `targets` list that supports this delivery method: if you chose `WEB`, `EMAIL` or `SMS` - there must be at least one\
        \ target in `targets` of `PLATFORM_USERS` type.\nFor `SLACK` delivery method - you need to chose at least one `SLACK` notification target.\n\nNotification request object with `PROCESSING` status\
        \ will be returned immediately, and the notification sending itself is done asynchronously. After all notifications are sent, the `status` of the request becomes `SENT`. Use `getNotificationRequestById`\
        \ to see the notification request processing status and some sending stats. \n\nHere is an example of notification request to one target using saved template:\n```json\n{\n  \"templateId\": {\n\
        \    \"entityType\": \"NOTIFICATION_TEMPLATE\",\n    \"id\": \"6dbc3670-e4dd-11ed-9401-dbcc5dff78be\"\n  },\n  \"targets\": [\n    \"320e3ed0-d785-11ed-a06c-21dd57dd88ca\"\n  ],\n  \"additionalConfig\"\
        : {\n    \"sendingDelayInSec\": 0\n  }\n}\n```\n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
      operationId: createNotificationRequest
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationRequest'
  /api/notification/request/preview:
    post:
      tags:
      - notification-controller
      summary: Get Notification Request Preview (getNotificationRequestPreview)
      description: 'Returns preview for notification request.


        `processedTemplates` shows how the notifications for each delivery method will look like for the first recipient of the corresponding notification target.


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: getNotificationRequestPreview
      parameters:
      - name: recipientsPreviewSize
        in: query
        description: Amount of the recipients to show in preview
        required: false
        schema:
          type: integer
          format: int32
          default: 20
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationRequestPreview'
  /api/notification/entitiesLimitIncreaseRequest/{entityType}:
    post:
      tags:
      - notification-controller
      summary: Send Entity Limit Increase Request Notification to System Administrators (sendEntitiesLimitIncreaseRequest)
      description: 'Send entity limit increase request notification by Tenant Administrator to System administrators.


        Available for users with ''TENANT_ADMIN'' authority.'
      operationId: sendEntitiesLimitIncreaseRequest
      parameters:
      - name: entityType
        in: path
        description: Entity type
        required: true
        schema:
          type: string
          enum:
          - DEVICE
          - ASSET
          - CUSTOMER
          - USER
          - DASHBOARD
          - RULE_CHAIN
          - EDGE
      responses:
        '200':
          description: OK
  /api/notifications:
    get:
      tags:
      - notification-controller
      summary: Get Notifications (getNotifications)
      description: "Returns the page of notifications for current user.\n\nYou can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result\
        \ set using pagination. See response schema for more details. \n\nAvailable for any authorized user. \n\n**WebSocket API**:\n\nThere are 2 types of subscriptions: one for unread notifications count,\
        \ another for unread notifications themselves.\n\nThe URI for opening WS session for notifications: `/api/ws/plugins/notifications`.\n\nSubscription command for unread notifications count:\n```\n\
        {\n  \"unreadCountSubCmd\": {\n    \"cmdId\": 1234\n  }\n}\n```\nTo subscribe for latest unread notifications:\n```\n{\n  \"unreadSubCmd\": {\n    \"cmdId\": 1234,\n    \"limit\": 10\n  }\n}\n```\n\
        To unsubscribe from any subscription:\n```\n{\n  \"unsubCmd\": {\n    \"cmdId\": 1234\n  }\n}\n```\nTo mark certain notifications as read, use following command:\n```\n{\n  \"markAsReadCmd\": {\n\
        \    \"cmdId\": 1234,\n    \"notifications\": [\n      \"6f860330-7fc2-11ed-b855-7dd3b7d2faa9\",\n      \"5b6dfee0-8d0d-11ed-b61f-35a57b03dade\"\n    ]\n  }\n}\n\n```\nTo mark all notifications\
        \ as read:\n```\n{\n  \"markAllAsReadCmd\": {\n    \"cmdId\": 1234\n  }\n}\n```\n\n\nUpdate structure for unread **notifications count subscription**:\n```\n{\n  \"cmdId\": 1234,\n  \"totalUnreadCount\"\
        : 55\n}\n```\nFor **notifications subscription**:\n- full update of latest unread notifications:\n```\n{\n  \"cmdId\": 1234,\n  \"notifications\": [\n    {\n      \"id\": {\n        \"entityType\"\
        : \"NOTIFICATION\",\n        \"id\": \"6f860330-7fc2-11ed-b855-7dd3b7d2faa9\"\n      },\n      ...\n    }\n  ],\n  \"totalUnreadCount\": 1\n}\n```\n- when new notification arrives or shown notification\
        \ is updated:\n```\n{\n  \"cmdId\": 1234,\n  \"update\": {\n    \"id\": {\n      \"entityType\": \"NOTIFICATION\",\n      \"id\": \"6f860330-7fc2-11ed-b855-7dd3b7d2faa9\"\n    },\n    # updated\
        \ notification info, text, subject etc.\n    ...\n  },\n  \"totalUnreadCount\": 2\n}\n```\n- when unread notifications count changes:\n```\n{\n  \"cmdId\": 1234,\n  \"totalUnreadCount\": 5\n}\n\
        ```"
      operationId: getNotifications
      parameters:
      - name: pageSize
        in: query
        description: Maximum amount of entities in a one page
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Sequence number of page starting from 0
        required: true
        schema:
          type: integer
          format: int32
      - name: textSearch
        in: query
        description: Case-insensitive 'substring' filter based on notification subject or text
        required: false
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          type: string
      - name: sortOrder
        in: query
        description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
        required: false
        schema:
          type: string
      - name: unreadOnly
        in: query
        description: To search for unread notifications only
        required: false
        schema:
          type: boolean
          default: false
      - name: deliveryMethod
        in: query
        description: Delivery method
        required: false
        schema:
          type: string
          enum:
          - WEB
          - MOBILE_APP
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDataNotification'
  /api/notifications/unread/count:
    get:
      tags:
      - notification-controller
      summary: Get Unread Notifications Count (getUnreadNotificationsCount)
      description: 'Returns unread notifications count for chosen delivery method.


        Available for any authorized user. '
      operationId: getUnreadNotificationsCount
      parameters:
      - name: deliveryMethod
        in: query
        description: Delivery method
        required: false
        schema:
          type: string
          enum:
          - WEB
          - MOBILE_APP
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: integer
                format: int32
  /api/notification/templates:
    get:
      tags:
      - notification-template-controller
      summary: Get Notification Templates (getNotificationTemplates)
      description: "Returns the page of notification templates owned by sysadmin or tenant.\n\nYou can specify parameters to filter the results. The result is wrapped with PageData object that allows you\
        \ to iterate over result set using pagination. See response schema for more details. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
      operationId: getNotificationTemplates
      parameters:
      - name: pageSize
        in: query
        description: Maximum amount of entities in a one page
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Sequence number of page starting from 0
        required: true
        schema:
          type: integer
          format: int32
      - name: textSearch
        in: query
        description: Case-insensitive 'substring' filter based on template's name and notification type
        required: false
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          type: string
      - name: sortOrder
        in: query
        description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
        required: false
        schema:
          type: string
      - name: notificationTypes
        in: query
        description: Comma-separated list of notification types to filter the templates
        required: false
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDataNotificationTemplate'
  /api/notification/template/{id}:
    get:
      tags:
      - notification-template-controller
      summary: Get Notification Template by Id (getNotificationTemplateById)
      description: 'Fetches notification template by id.


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: getNotificationTemplateById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationTemplate'
    delete:
      tags:
      - notification-template-controller
      summary: Delete Notification Template by Id (deleteNotificationTemplateById
      description: 'Deletes notification template by its id.


        This template cannot be referenced by existing scheduled notification requests or any notification rules.


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: deleteNotificationTemplateById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
  /api/notification/targets:
    get:
      tags:
      - notification-target-controller
      summary: Get Notification Targets by Ids (getNotificationTargetsByIds)
      description: 'Returns the list of notification targets found by provided ids.


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: getNotificationTargets
      parameters:
      - name: pageSize
        in: query
        description: Maximum amount of entities in a one page
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Sequence number of page starting from 0
        required: true
        schema:
          type: integer
          format: int32
      - name: textSearch
        in: query
        description: Case-insensitive 'substring' filed based on the target's name
        required: false
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          type: string
      - name: sortOrder
        in: query
        description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
        required: false
        schema:
          type: string
      - name: notificationType
        in: query
        required: false
        schema:
          type: string
          enum:
          - GENERAL
          - ALARM
          - DEVICE_ACTIVITY
          - ENTITY_ACTION
          - ALARM_COMMENT
          - RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT
          - ALARM_ASSIGNMENT
          - NEW_PLATFORM_VERSION
          - ENTITIES_LIMIT
          - ENTITIES_LIMIT_INCREASE_REQUEST
          - API_USAGE_LIMIT
          - RULE_NODE
          - RATE_LIMITS
          - EDGE_CONNECTION
          - EDGE_COMMUNICATION_FAILURE
          - TASK_PROCESSING_FAILURE
          - RESOURCES_SHORTAGE
      - name: ids
        in: query
        description: Comma-separated list of uuids representing targets ids
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                - type: array
                  items:
                    $ref: '#/components/schemas/NotificationTarget'
                - $ref: '#/components/schemas/PageDataNotificationTarget'
  /api/notification/target/{id}:
    get:
      tags:
      - notification-target-controller
      summary: Get Notification Target by Id (getNotificationTargetById)
      description: 'Fetches notification target by id.


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: getNotificationTargetById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationTarget'
    delete:
      tags:
      - notification-target-controller
      summary: Delete Notification Target by Id (deleteNotificationTargetById)
      description: 'Deletes notification target by its id.


        This target cannot be referenced by existing scheduled notification requests or any notification rules.


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: deleteNotificationTargetById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
  /api/notification/slack/conversations:
    get:
      tags:
      - notification-template-controller
      summary: List Slack Conversations (listSlackConversations)
      description: 'List available Slack conversations by type.


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: listSlackConversations
      parameters:
      - name: type
        in: query
        required: true
        schema:
          type: string
          enum:
          - DIRECT
          - PUBLIC_CHANNEL
          - PRIVATE_CHANNEL
      - name: token
        in: query
        description: Slack bot token. If absent - system Slack settings will be used
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SlackConversation'
  /api/notification/rules:
    get:
      tags:
      - notification-rule-controller
      summary: Get Notification Rules (getNotificationRules)
      description: "Returns the page of notification rules.\n\nYou can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using\
        \ pagination. See response schema for more details. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
      operationId: getNotificationRules
      parameters:
      - name: pageSize
        in: query
        description: Maximum amount of entities in a one page
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Sequence number of page starting from 0
        required: true
        schema:
          type: integer
          format: int32
      - name: textSearch
        in: query
        description: Case-insensitive 'substring' filter based on rule's name
        required: false
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          type: string
      - name: sortOrder
        in: query
        description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDataNotificationRuleInfo'
  /api/notification/rule/{id}:
    get:
      tags:
      - notification-rule-controller
      summary: Get Notification Rule by Id (getNotificationRuleById)
      description: 'Fetches notification rule info by rule''s id.

        In addition to regular notification rule fields, there are `templateName` and `deliveryMethods` in the response.


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: getNotificationRuleById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationRuleInfo'
    delete:
      tags:
      - notification-rule-controller
      summary: Delete Notification Rule (deleteNotificationRule)
      description: 'Deletes notification rule by id.

        Cancels all related scheduled notification requests (e.g. due to escalation table)


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: deleteNotificationRule
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
  /api/notification/requests:
    get:
      tags:
      - notification-controller
      summary: Get Notification Requests (getNotificationRequests)
      description: "Returns the page of notification requests submitted by users of this tenant or sysadmins.\n\nYou can specify parameters to filter the results. The result is wrapped with PageData object\
        \ that allows you to iterate over result set using pagination. See response schema for more details. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
      operationId: getNotificationRequests
      parameters:
      - name: pageSize
        in: query
        description: Maximum amount of entities in a one page
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Sequence number of page starting from 0
        required: true
        schema:
          type: integer
          format: int32
      - name: textSearch
        in: query
        description: Case-insensitive 'substring' filed based on the used template name
        required: false
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          type: string
      - name: sortOrder
        in: query
        description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            ap

# --- truncated at 32 KB (83 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/thingsboard/refs/heads/main/openapi/thingsboard-notifications-openapi.yml