ThingsBoard Admin API

System-administrator endpoints — admin settings, audit logs, events, usage info, queues and queue stats, mail-config templates, QR-code settings, and background jobs. 42 endpoints.

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

Tagged areas include IoT, Administration, AuditLog, Queue, and Usage. The published artifact set on APIs.io includes API documentation and an OpenAPI specification.

OpenAPI Specification

thingsboard-admin-openapi.yml Raw ↑
# ThingsBoard ThingsBoard Admin API
# Source: https://demo.thingsboard.io/v3/api-docs (Apache 2.0)
openapi: 3.1.0
info:
  title: ThingsBoard Admin API
  description: "ThingsBoard Admin API \u2014 subset of the ThingsBoard REST API (open-source IoT platform). Covers: Admin, Audit Log, Event, Usage Info, Queue, Queue Stats, Mail Config Template, Qr Code\
    \ Settings, Job."
  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: admin-controller
  description: Admin
- name: audit-log-controller
  description: Audit Log
- name: event-controller
  description: Event
- name: usage-info-controller
  description: Usage Info
- name: queue-controller
  description: Queue
- name: queue-stats-controller
  description: Queue Stats
- name: mail-config-template-controller
  description: Mail Config Template
- name: qr-code-settings-controller
  description: Qr Code Settings
- name: job-controller
  description: Job
paths:
  /api/queues:
    get:
      tags:
      - queue-controller
      summary: Get Queues (getTenantQueuesByServiceType)
      description: "Returns a page of queues registered in the platform. You 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: getTenantQueuesByServiceType
      parameters:
      - name: serviceType
        in: query
        description: Service type (implemented only for the TB-RULE-ENGINE)
        required: true
        schema:
          type: string
          enum:
          - TB-RULE-ENGINE
          - TB-CORE
          - TB-TRANSPORT
          - JS-EXECUTOR
      - 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: The case insensitive 'substring' filter based on the queue name.
        required: false
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          type: string
          enum:
          - createdTime
          - name
          - topic
      - name: sortOrder
        in: query
        description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
        required: false
        schema:
          type: string
          enum:
          - ASC
          - DESC
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDataQueue'
    post:
      tags:
      - queue-controller
      summary: Create or Update Queue (saveQueue)
      description: "Create or update the Queue. When creating queue, platform generates Queue Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)).\
        \ Specify existing Queue id to update the queue. Referencing non-existing Queue Id will cause 'Not Found' error.\n\nQueue name is unique in the scope of sysadmin. Remove 'id', 'tenantId' from the\
        \ request body example (below) to create new Queue entity. \n\nAvailable for users with 'SYS_ADMIN' authority."
      operationId: saveQueue
      parameters:
      - name: serviceType
        in: query
        description: Service type (implemented only for the TB-RULE-ENGINE)
        required: true
        schema:
          type: string
          enum:
          - TB-RULE-ENGINE
          - TB-CORE
          - TB-TRANSPORT
          - JS-EXECUTOR
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Queue'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Queue'
  /api/mobile/qr/settings:
    get:
      tags:
      - qr-code-settings-controller
      summary: Get Mobile Application Settings (getMobileAppSettings)
      description: 'The response payload contains configuration for android/iOS applications and platform qr code widget settings.


        Available for any authorized user. '
      operationId: getQrCodeSettings
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QrCodeSettings'
    post:
      tags:
      - qr-code-settings-controller
      summary: Create or Update the Mobile Application Settings (saveMobileAppSettings)
      description: 'The request payload contains configuration for android/iOS applications and platform qr code widget settings.


        Available for users with ''SYS_ADMIN'' authority.'
      operationId: saveQrCodeSettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QrCodeSettings'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QrCodeSettings'
  /api/job/{id}/reprocess:
    post:
      tags:
      - job-controller
      operationId: reprocessJob
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
  /api/job/{id}/cancel:
    post:
      tags:
      - job-controller
      operationId: cancelJob
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
  /api/events/{entityType}/{entityId}:
    get:
      tags:
      - event-controller
      summary: Get Events (Deprecated)
      description: 'Returns a page of events for specified entity. Deprecated and will be removed in next minor release. The call was deprecated to improve the performance of the system. Current implementation
        will return ''Lifecycle'' events only. Use ''Get events by type'' or ''Get events by filter'' instead. You 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. '
      operationId: getEvents
      parameters:
      - name: entityType
        in: path
        description: A string value representing the entity type. For example, 'DEVICE'
        required: true
        schema:
          type: string
      - name: entityId
        in: path
        description: A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      - name: tenantId
        in: query
        description: A string value representing the tenant id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      - 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: The value is not used in searching.
        required: false
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          type: string
          enum:
          - ts
          - id
      - name: sortOrder
        in: query
        description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
        required: false
        schema:
          type: string
          enum:
          - ASC
          - DESC
      - name: startTime
        in: query
        description: Timestamp. Events with creation time before it won't be queried.
        required: false
        schema:
          type: integer
          format: int64
      - name: endTime
        in: query
        description: Timestamp. Events with creation time after it won't be queried.
        required: false
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDataEventInfo'
    post:
      tags:
      - event-controller
      summary: Get Events by Event Filter (getEvents)
      description: "Returns a page of events for the chosen entity by specifying the event filter. You 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\n# Event Filter Definition\n\n6 different eventFilter objects could be set for different event types.\
        \ The eventType field is required. Others are optional. If some of them are set, the filtering will be applied according to them. See the examples below for all the fields used for each event type\
        \ filtering. \n\nNote,\n\n * 'server' - string value representing the server name, identifier or ip address where the platform is running;\n * 'errorStr' - the case insensitive 'contains' filter\
        \ based on error message.\n\n## Error Event Filter\n\n```json\n{\n   \"eventType\":\"ERROR\",\n   \"server\":\"ip-172-31-24-152\",\n   \"method\":\"onClusterEventMsg\",\n   \"errorStr\":\"Error\
        \ Message\"\n}\n```\n\n * 'method' - string value representing the method name when the error happened.\n\n## Lifecycle Event Filter\n\n```json\n{\n   \"eventType\":\"LC_EVENT\",\n   \"server\"\
        :\"ip-172-31-24-152\",\n   \"event\":\"STARTED\",\n   \"status\":\"Success\",\n   \"errorStr\":\"Error Message\"\n}\n```\n\n * 'event' - string value representing the lifecycle event type;\n * 'status'\
        \ - string value representing status of the lifecycle event.\n\n## Statistics Event Filter\n\n```json\n{\n   \"eventType\":\"STATS\",\n   \"server\":\"ip-172-31-24-152\",\n   \"messagesProcessed\"\
        :10,\n   \"errorsOccurred\":5\n}\n```\n\n * 'messagesProcessed' - the minimum number of successfully processed messages;\n * 'errorsOccurred' - the minimum number of errors occurred during messages\
        \ processing.\n\n## Debug Rule Node Event Filter\n\n```json\n{\n   \"eventType\":\"DEBUG_RULE_NODE\",\n   \"msgDirectionType\":\"IN\",\n   \"server\":\"ip-172-31-24-152\",\n   \"dataSearch\":\"\
        humidity\",\n   \"metadataSearch\":\"deviceName\",\n   \"entityName\":\"DEVICE\",\n   \"relationType\":\"Success\",\n   \"entityId\":\"de9d54a0-2b7a-11ec-a3cc-23386423d98f\",\n   \"msgType\":\"\
        POST_TELEMETRY_REQUEST\",\n   \"isError\":\"false\",\n   \"errorStr\":\"Error Message\"\n}\n```\n\n## Debug Rule Chain Event Filter\n\n```json\n{\n   \"eventType\":\"DEBUG_RULE_CHAIN\",\n   \"msgDirectionType\"\
        :\"IN\",\n   \"server\":\"ip-172-31-24-152\",\n   \"dataSearch\":\"humidity\",\n   \"metadataSearch\":\"deviceName\",\n   \"entityName\":\"DEVICE\",\n   \"relationType\":\"Success\",\n   \"entityId\"\
        :\"de9d54a0-2b7a-11ec-a3cc-23386423d98f\",\n   \"msgType\":\"POST_TELEMETRY_REQUEST\",\n   \"isError\":\"false\",\n   \"errorStr\":\"Error Message\"\n}\n```\n\n * 'msgDirectionType' - string value\
        \ representing msg direction type (incoming to entity or outcoming from entity);\n * 'dataSearch' - the case insensitive 'contains' filter based on data (key and value) for the message;\n * 'metadataSearch'\
        \ - the case insensitive 'contains' filter based on metadata (key and value) for the message;\n * 'entityName' - string value representing the entity type;\n * 'relationType' - string value representing\
        \ the type of message routing;\n * 'entityId' - string value representing the entity id in the event body (originator of the message);\n * 'msgType' - string value representing the message type;\n\
        \ * 'isError' - boolean value to filter the errors.\n\n## Debug Calculated Field Event Filter\n\n```json\n{\n   \"eventType\":\"DEBUG_CALCULATED_FIELD\",\n   \"server\":\"ip-172-31-24-152\",\n \
        \  \"isError\":\"false\",\n   \"errorStr\":\"Error Message\"\n   \"entityId\":\"cf4b8741-f618-471f-ae08-d881ca7f9fe9\",\n   \"msgId\":\"5cf7d3a0-aee7-40dd-a737-ade05528e7eb\",\n   \"msgType\":\"\
        POST_TELEMETRY_REQUEST\",\n   \"arguments\":\"{\n    \"x\": {\n      \"ts\": 1739432016629,\n      \"value\": 20\n    },\n    \"y\": {\n      \"ts\": 1739429717656,\n      \"value\": 12\n    }\n\
        \  }\",\n   \"result\":\"{\n    \"x + y\": 32\n  }\",\n}\n```\n\n * 'entityId' - string value representing the entity id in the event body;\n * 'entityType' - string value representing the entity\
        \ type;\n * 'msgId' - string value representing the message id in the rule engine;\n * 'msgType' - string value representing the message type;\n * 'arguments' - string value representing the arguments\
        \ that were used in the calculation performed;\n * 'result' - string value representing the result of a calculation;\n * 'isError' - boolean value to filter the errors.\n\n"
      operationId: getEvents_1
      parameters:
      - name: entityType
        in: path
        description: A string value representing the entity type. For example, 'DEVICE'
        required: true
        schema:
          type: string
      - name: entityId
        in: path
        description: A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      - name: tenantId
        in: query
        description: A string value representing the tenant id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      - 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: The value is not used in searching.
        required: false
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          type: string
          enum:
          - ts
          - id
      - name: sortOrder
        in: query
        description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
        required: false
        schema:
          type: string
          enum:
          - ASC
          - DESC
      - name: startTime
        in: query
        description: Timestamp. Events with creation time before it won't be queried.
        required: false
        schema:
          type: integer
          format: int64
      - name: endTime
        in: query
        description: Timestamp. Events with creation time after it won't be queried.
        required: false
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              description: A JSON value representing the event filter.
              oneOf:
              - $ref: '#/components/schemas/CalculatedFieldDebugEventFilter'
              - $ref: '#/components/schemas/ErrorEventFilter'
              - $ref: '#/components/schemas/LifeCycleEventFilter'
              - $ref: '#/components/schemas/RuleChainDebugEventFilter'
              - $ref: '#/components/schemas/RuleNodeDebugEventFilter'
              - $ref: '#/components/schemas/StatisticsEventFilter'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDataEventInfo'
  /api/events/{entityType}/{entityId}/clear:
    post:
      tags:
      - event-controller
      summary: Clear Events (clearEvents)
      description: Clears events by filter for specified entity.
      operationId: clearEvents
      parameters:
      - name: entityType
        in: path
        description: A string value representing the entity type. For example, 'DEVICE'
        required: true
        schema:
          type: string
      - name: entityId
        in: path
        description: A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      - name: startTime
        in: query
        description: Timestamp. Events with creation time before it won't be queried.
        required: false
        schema:
          type: integer
          format: int64
      - name: endTime
        in: query
        description: Timestamp. Events with creation time after it won't be queried.
        required: false
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              description: "# Event Filter Definition\n\n6 different eventFilter objects could be set for different event types. The eventType field is required. Others are optional. If some of them are\
                \ set, the filtering will be applied according to them. See the examples below for all the fields used for each event type filtering. \n\nNote,\n\n * 'server' - string value representing\
                \ the server name, identifier or ip address where the platform is running;\n * 'errorStr' - the case insensitive 'contains' filter based on error message.\n\n## Error Event Filter\n\n```json\n\
                {\n   \"eventType\":\"ERROR\",\n   \"server\":\"ip-172-31-24-152\",\n   \"method\":\"onClusterEventMsg\",\n   \"errorStr\":\"Error Message\"\n}\n```\n\n * 'method' - string value representing\
                \ the method name when the error happened.\n\n## Lifecycle Event Filter\n\n```json\n{\n   \"eventType\":\"LC_EVENT\",\n   \"server\":\"ip-172-31-24-152\",\n   \"event\":\"STARTED\",\n  \
                \ \"status\":\"Success\",\n   \"errorStr\":\"Error Message\"\n}\n```\n\n * 'event' - string value representing the lifecycle event type;\n * 'status' - string value representing status of\
                \ the lifecycle event.\n\n## Statistics Event Filter\n\n```json\n{\n   \"eventType\":\"STATS\",\n   \"server\":\"ip-172-31-24-152\",\n   \"messagesProcessed\":10,\n   \"errorsOccurred\"\
                :5\n}\n```\n\n * 'messagesProcessed' - the minimum number of successfully processed messages;\n * 'errorsOccurred' - the minimum number of errors occurred during messages processing.\n\n\
                ## Debug Rule Node Event Filter\n\n```json\n{\n   \"eventType\":\"DEBUG_RULE_NODE\",\n   \"msgDirectionType\":\"IN\",\n   \"server\":\"ip-172-31-24-152\",\n   \"dataSearch\":\"humidity\"\
                ,\n   \"metadataSearch\":\"deviceName\",\n   \"entityName\":\"DEVICE\",\n   \"relationType\":\"Success\",\n   \"entityId\":\"de9d54a0-2b7a-11ec-a3cc-23386423d98f\",\n   \"msgType\":\"POST_TELEMETRY_REQUEST\"\
                ,\n   \"isError\":\"false\",\n   \"errorStr\":\"Error Message\"\n}\n```\n\n## Debug Rule Chain Event Filter\n\n```json\n{\n   \"eventType\":\"DEBUG_RULE_CHAIN\",\n   \"msgDirectionType\"\
                :\"IN\",\n   \"server\":\"ip-172-31-24-152\",\n   \"dataSearch\":\"humidity\",\n   \"metadataSearch\":\"deviceName\",\n   \"entityName\":\"DEVICE\",\n   \"relationType\":\"Success\",\n \
                \  \"entityId\":\"de9d54a0-2b7a-11ec-a3cc-23386423d98f\",\n   \"msgType\":\"POST_TELEMETRY_REQUEST\",\n   \"isError\":\"false\",\n   \"errorStr\":\"Error Message\"\n}\n```\n\n * 'msgDirectionType'\
                \ - string value representing msg direction type (incoming to entity or outcoming from entity);\n * 'dataSearch' - the case insensitive 'contains' filter based on data (key and value) for\
                \ the message;\n * 'metadataSearch' - the case insensitive 'contains' filter based on metadata (key and value) for the message;\n * 'entityName' - string value representing the entity type;\n\
                \ * 'relationType' - string value representing the type of message routing;\n * 'entityId' - string value representing the entity id in the event body (originator of the message);\n * 'msgType'\
                \ - string value representing the message type;\n * 'isError' - boolean value to filter the errors.\n\n## Debug Calculated Field Event Filter\n\n```json\n{\n   \"eventType\":\"DEBUG_CALCULATED_FIELD\"\
                ,\n   \"server\":\"ip-172-31-24-152\",\n   \"isError\":\"false\",\n   \"errorStr\":\"Error Message\"\n   \"entityId\":\"cf4b8741-f618-471f-ae08-d881ca7f9fe9\",\n   \"msgId\":\"5cf7d3a0-aee7-40dd-a737-ade05528e7eb\"\
                ,\n   \"msgType\":\"POST_TELEMETRY_REQUEST\",\n   \"arguments\":\"{\n    \"x\": {\n      \"ts\": 1739432016629,\n      \"value\": 20\n    },\n    \"y\": {\n      \"ts\": 1739429717656,\n\
                \      \"value\": 12\n    }\n  }\",\n   \"result\":\"{\n    \"x + y\": 32\n  }\",\n}\n```\n\n * 'entityId' - string value representing the entity id in the event body;\n * 'entityType' -\
                \ string value representing the entity type;\n * 'msgId' - string value representing the message id in the rule engine;\n * 'msgType' - string value representing the message type;\n * 'arguments'\
                \ - string value representing the arguments that were used in the calculation performed;\n * 'result' - string value representing the result of a calculation;\n * 'isError' - boolean value\
                \ to filter the errors.\n\n"
              oneOf:
              - $ref: '#/components/schemas/CalculatedFieldDebugEventFilter'
              - $ref: '#/components/schemas/ErrorEventFilter'
              - $ref: '#/components/schemas/LifeCycleEventFilter'
              - $ref: '#/components/schemas/RuleChainDebugEventFilter'
              - $ref: '#/components/schemas/RuleNodeDebugEventFilter'
              - $ref: '#/components/schemas/StatisticsEventFilter'
        required: true
      responses:
        '200':
          description: OK
  /api/admin/settings:
    post:
      tags:
      - admin-controller
      summary: Creates or Updates the Administration Settings (saveAdminSettings)
      description: 'Creates or Updates the Administration Settings. Platform generates random Administration Settings Id during settings creation. The Administration Settings Id will be present in the response.
        Specify the Administration Settings Id when you would like to update the Administration Settings. Referencing non-existing Administration Settings Id will cause an error.


        Available for users with ''SYS_ADMIN'' authority.'
      operationId: saveAdminSettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminSettings'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminSettings'
  /api/admin/settings/testSms:
    post:
      tags:
      - admin-controller
      summary: Send Test Sms (sendTestSms)
      description: "Attempts to send test sms to the System Administrator User using SMS Settings and phone number provided as a parameters of the request. \n\nAvailable for users with 'SYS_ADMIN' authority."
      operationId: sendTestSms
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestSmsRequest'
        required: true
      responses:
        '200':
          description: OK
  /api/admin/settings/testMail:
    post:
      tags:
      - admin-controller
      summary: Send Test Email (sendTestMail)
      description: "Attempts to send test email to the System Administrator User using Mail Settings provided as a parameter. You may change the 'To' email in the user profile of the System Administrator.\
        \ \n\nAvailable for users with 'SYS_ADMIN' authority."
      operationId: sendTestMail
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminSettings'
        required: true
      responses:
        '200':
          description: OK
  /api/admin/securitySettings:
    get:
      tags:
      - admin-controller
      summary: Get the Security Settings Object (getSecuritySettings)
      description: 'Get the Security Settings object that contains password policy, etc.


        Available for users with ''SYS_ADMIN'' authority.'
      operationId: getSecuritySettings
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecuritySettings'
    post:
      tags:
      - admin-controller
      summary: Update Security Settings (saveSecuritySettings)
      description: 'Updates the Security Settings object that contains password policy, etc.


        Available for users with ''SYS_ADMIN'' authority.'
      operationId: saveSecuritySettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SecuritySettings'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecuritySettings'
  /api/admin/repositorySettings:
    get:
      tags:
      - admin-controller
      summary: Get Repository Settings (getRepositorySettings)
      description: "Get the repository settings object. \n\nAvailable for users with 'TENANT_ADMIN' authority."
      operationId: getRepositorySettings
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepositorySettings'
    post:
      tags:
      - admin-controller
      summary: Creates or Updates the Repository Settings (saveRepositorySettings)
      description: "Creates or Updates the repository settings object. \n\nAvailable for users with 'TENANT_ADMIN' authority."
      operationId: saveRepositorySettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RepositorySettings'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepositorySettings'
    delete:
      tags:
      - admin-controller
      summary: Delete Repository Settings (deleteRepositorySettings)
      description: 'Deletes the repository settings.


        Available for users with ''TENANT_ADMIN'' authority.'
      operationId: deleteRepositorySettings
      responses:
        '200':
          description: OK
  /api/admin/repositorySettings/checkAccess:
    post:
      tags:
      - admin-controller
      summary: Check Repository Access (checkRepositoryAccess)
      description: "Attempts to check repository access. \n\nAvailable for users with 'TENANT_ADMIN' authority."
      operationId: checkRepositoryAccess
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RepositorySettings'
        required: true
      responses:
        '200':
          description: OK
  /api/admin/jwtSettings:
    get:
      tags:
      - admin-controller
      summary: Get the JWT Settings Object (getJwtSettings)
      description: "Get the JWT Settings object that contains JWT token policy, etc. \n\nAvailable for users with 'SYS_ADMIN' authority."
      operationId: getJwtSettings
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JwtSettings'
    post:
      tags:
      - admin-controller
      summary: Update JWT Settings (saveJwtSettings)
      description: 'Updates the JWT Settings object that contains JWT token policy, etc. The tokenSigningKey field is a Base64 encoded string.


        Available for users with ''SYS_ADMIN'' authority.'
      operationId: saveJwtSettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JwtSettings'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JwtPair'
  /api/admin/autoCommitSettings:
    get:
      tags:
      - admin-controller
      summary: Get Auto Commit Settings (getAutoCommitSettings)
      description: "Get the auto commit settings object. \n\nAvailable for users with 'TENANT_ADMIN' authority."
      operationId: getAutoCommitSettings
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutoCommitSettings'
    post:
      tags:
      - admin-controller
      summary: Creates or Updates the Auto Commit Settings (saveAutoCommitSettings)
      description: "Creates or Updates the auto commit settings object. \n\nAvailable for users with 'TENANT_ADMIN' authority."
      operationId: saveAutoCommitSettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AutoCommitSettings'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutoCommitSettings'
    delete:
      tags:
      - admin-controller
      summary: Delete Auto Commit Settings (deleteAutoCommitSettings)
      description: 'Deletes the auto commit settings.


        Available for users with ''TENANT_ADMIN'' authority.'
      operationId: deleteAutoCommitSettings
      responses:
        '200':
          description: OK
  /api/usage:
    get:
      tags:
      - usage-info-controller
      operationId: getTenantUsageInfo
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageInfo'
  /api/queues/{queueId}:
    get:
      tags:
      - queue-controller
      summary: Get Queue (getQueueById)
      description: "Fetch the Queue object based on the provided Queue Id. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
      operationId: getQueueById
      parameters:
      - name: queueId
        in: path
        description: A string value representing the queue id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Queue'
    delete:
      tags:
      - queue-controller
      summary: Delete Queue (deleteQueue)
      description: "Deletes the Queue. \n\nAvailable for users with 'SYS_ADMIN' authority."
      operationId: deleteQueue
      parameters:
      - name: queueId
  

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