ThingsBoard is an open-source IoT platform for device connectivity, data collection, processing, and visualization. Licensed under Apache 2.0 and developed by ThingsBoard Inc., it supports multi-tenant device management, telemetry over MQTT/HTTP/CoAP/LwM2M/SNMP, a drag-and-drop rule engine, calculated fields, 600+ customizable dashboard widgets, alarms, RPC, OTA firmware updates, edge computing, mobile apps, and a distributed MQTT broker (TBMQ). Available as Community Edition (free, self-hosted), Professional Edition (self-hosted subscription), and ThingsBoard Cloud (managed PaaS).
15 APIs20 Features
IoTInternet of ThingsDevice ManagementTelemetryOpen SourceApache 2.0MQTTLwM2MCoAPRule EngineDashboardsEdgeMulti-tenantJavaSpring
Provision, list, retrieve, update, assign, and delete IoT devices and device profiles. Includes device connectivity helpers and OTA package management for over-the-air firmware ...
Read and write device/asset time-series telemetry and key/value attributes (CLIENT/SERVER/SHARED scopes), run entity queries, and manage calculated fields. 26 endpoints.
Create and manage dashboards, widget bundles, widget types, image resources, and tenant resources that drive the ThingsBoard UI. Includes SCADA dashboards. 57 endpoints.
AI model management and Trendz Analytics integration for forecasting, anomaly detection, and predictive-maintenance workflows over IoT telemetry. 4 endpoints.
opencollection: 1.0.0
info:
name: ThingsBoard Tenants and Customers API
version: 4.3.0.3DEMO
items:
- info:
name: user-controller
type: folder
items:
- info:
name: Get User Settings (getUserSettings)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/user/settings
docs: 'Fetch the User settings based on authorized user. '
- info:
name: Save User Settings (saveUserSettings)
type: http
http:
method: POST
url: https://demo.thingsboard.io/api/user/settings
body:
type: json
data: '{}'
docs: 'Save user settings represented in json format for authorized user. '
- info:
name: Update User Settings (saveUserSettings)
type: http
http:
method: PUT
url: https://demo.thingsboard.io/api/user/settings
body:
type: json
data: '{}'
docs: 'Update user settings for authorized user. Only specified json elements will be updated.Example: you have such settings:
{A:5, B:{C:10, D:20}}. Updating it with {B:{C:10, D:30}} will result in{A:5, B:{C:10, D:30}}. The same could be achieved
by putting {B.D:30}'
- info:
name: Get User Settings (getUserSettings)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/user/settings/:type
params:
- name: type
value: ''
type: path
description: 'Settings type, case insensitive, one of: "general", "quick_links", "doc_links" or "dashboards".'
docs: 'Fetch the User settings based on authorized user. '
- info:
name: Update User Settings (saveUserSettings)
type: http
http:
method: PUT
url: https://demo.thingsboard.io/api/user/settings/:type
params:
- name: type
value: ''
type: path
description: 'Settings type, case insensitive, one of: "general", "quick_links", "doc_links" or "dashboards".'
body:
type: json
data: '{}'
docs: 'Update user settings for authorized user. Only specified json elements will be updated.Example: you have such settings:
{A:5, B:{C:10, D:20}}. Updating it with {B:{C:10, D:30}} will result in{A:5, B:{C:10, D:30}}. The same could be achieved
by putting {B.D:30}'
- info:
name: Save or Update User (saveUser)
type: http
http:
method: POST
url: https://demo.thingsboard.io/api/user
params:
- name: sendActivationMail
value: ''
type: query
description: Send activation email (or use activation link)
body:
type: json
data: '{}'
docs: 'Create or update the User. When creating user, platform generates User Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)).
The newly created User Id will be present in the response. Specify existing User Id to update the device. Referencing
non-existing User Id will cause ''Not Found'' error.
Device email is unique for entire platform setup.Remove ''id'', ''tenantId'' and optionally ''customerId'' from the
request body example (bel'
- info:
name: Enable/Disable User Credentials (setUserCredentialsEnabled)
type: http
http:
method: POST
url: https://demo.thingsboard.io/api/user/:userId/userCredentialsEnabled
params:
- name: userId
value: ''
type: path
description: A string value representing the user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
- name: userCredentialsEnabled
value: ''
type: query
description: Enable ("true") or disable ("false") the credentials.
docs: "Enables or Disables user credentials. Useful when you would like to block user account without deleting it. 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 'TENANT_ADMIN'\
\ authority."
- info:
name: Send or Re-send the Activation Email
type: http
http:
method: POST
url: https://demo.thingsboard.io/api/user/sendActivationMail
params:
- name: email
value: ''
type: query
description: Email of the user
docs: "Force send the activation email to the user. Useful to resend the email if user has accidentally deleted it. \n\
\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
- info:
name: getMobileSession
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/user/mobile/session
headers:
- name: X-Mobile-Token
value: ''
- info:
name: saveMobileSession
type: http
http:
method: POST
url: https://demo.thingsboard.io/api/user/mobile/session
headers:
- name: X-Mobile-Token
value: ''
body:
type: json
data: '{}'
- info:
name: removeMobileSession
type: http
http:
method: DELETE
url: https://demo.thingsboard.io/api/user/mobile/session
headers:
- name: X-Mobile-Token
value: ''
- info:
name: Get Users (getUsers)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/users
params:
- name: userIds
value: ''
type: query
description: A list of user ids, separated by comma ','
- name: pageSize
value: ''
type: query
description: Maximum amount of entities in a one page
- name: page
value: ''
type: query
description: Sequence number of page starting from 0
- name: textSearch
value: ''
type: query
description: The case insensitive 'substring' filter based on the user email.
- name: sortProperty
value: ''
type: query
description: Property of entity to sort by
- name: sortOrder
value: ''
type: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
docs: "Returns a page of users owned by tenant or customer. The scope depends on authority of the user that performs the\
\ request.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 'TENANT_ADMIN'\
\ or 'CUSTOMER_USER' authority."
- info:
name: Find Users by Query (findUsersByQuery)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/users/info
params:
- name: pageSize
value: ''
type: query
description: Maximum amount of entities in a one page
- name: page
value: ''
type: query
description: Sequence number of page starting from 0
- name: textSearch
value: ''
type: query
description: The case insensitive 'substring' filter based on the user email.
- name: sortProperty
value: ''
type: query
description: Property of entity to sort by
- name: sortOrder
value: ''
type: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
docs: "Returns page of user data objects. Search is been executed by email, firstName and lastName fields. 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 'TENANT_ADMIN' or 'CUSTOMER_USER'\
\ authority."
- info:
name: Get UsersForAssign (getUsersForAssign)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/users/assign/:alarmId
params:
- name: alarmId
value: ''
type: path
description: A string value representing the alarm id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
- name: pageSize
value: ''
type: query
description: Maximum amount of entities in a one page
- name: page
value: ''
type: query
description: Sequence number of page starting from 0
- name: textSearch
value: ''
type: query
description: The case insensitive 'substring' filter based on the user email.
- name: sortProperty
value: ''
type: query
description: Property of entity to sort by
- name: sortOrder
value: ''
type: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
docs: "Returns page of user data objects that can be assigned to provided alarmId. Search is been executed by email, firstName\
\ and lastName fields. 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 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
- info:
name: Get User (getUserById)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/user/:userId
params:
- name: userId
value: ''
type: path
description: A string value representing the user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
docs: Fetch the User object based on the provided User Id. If the user has the authority of 'SYS_ADMIN', the server does
not perform additional checks. If the user has the authority of 'TENANT_ADMIN', the server checks that the requested
user is owned by the same tenant. If the user has the authority of 'CUSTOMER_USER', the server checks that the requested
user is owned by the same customer.
- info:
name: Delete User (deleteUser)
type: http
http:
method: DELETE
url: https://demo.thingsboard.io/api/user/:userId
params:
- name: userId
value: ''
type: path
description: A string value representing the user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
docs: "Deletes the User, it's credentials and all the relations (from and to the User). Referencing non-existing User\
\ Id will cause an error. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
- info:
name: Get User Token (getUserToken)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/user/:userId/token
params:
- name: userId
value: ''
type: path
description: A string value representing the user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
docs: 'Returns the token of the User based on the provided User Id. If the user who performs the request has the authority
of ''SYS_ADMIN'', it is possible to get the token of any tenant administrator. If the user who performs the request
has the authority of ''TENANT_ADMIN'', it is possible to get the token of any customer user that belongs to the same
tenant. '
- info:
name: Get Activation Link (getActivationLink)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/user/:userId/activationLink
params:
- name: userId
value: ''
type: path
description: A string value representing the user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
docs: "Get the activation link for the user. The base url for activation link is configurable in the general settings\
\ of system administrator. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
- info:
name: Get Activation Link Info (getActivationLinkInfo)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/user/:userId/activationLinkInfo
params:
- name: userId
value: ''
type: path
description: A string value representing the user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
docs: "Get the activation link info for the user. The base url for activation link is configurable in the general settings\
\ of system administrator. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
- info:
name: Check Token Access Enabled (isUserTokenAccessEnabled)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/user/tokenAccessEnabled
docs: 'Checks that the system is configured to allow administrators to impersonate themself as other users. If the user
who performs the request has the authority of ''SYS_ADMIN'', it is possible to login as any tenant administrator. If
the user who performs the request has the authority of ''TENANT_ADMIN'', it is possible to login as any customer user. '
- info:
name: Get Information About Last Visited and Starred Dashboards (getLastVisitedDashboards)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/user/dashboards
docs: 'Fetch the list of last visited and starred dashboards. Both lists are limited to 10 items.
Available for users with ''TENANT_ADMIN'' or ''CUSTOMER_USER'' authority.'
- info:
name: Report Action of User Over the Dashboard (reportUserDashboardAction)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/user/dashboards/:dashboardId/:action
params:
- name: dashboardId
value: ''
type: path
description: A string value representing the dashboard id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
- name: action
value: ''
type: path
description: 'Dashboard action, one of: "visit", "star" or "unstar".'
docs: "Report action of User over the dashboard. \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
- info:
name: Get Tenant Users (getTenantAdmins)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/tenant/:tenantId/users
params:
- name: tenantId
value: ''
type: path
description: A string value representing the tenant id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
- name: pageSize
value: ''
type: query
description: Maximum amount of entities in a one page
- name: page
value: ''
type: query
description: Sequence number of page starting from 0
- name: textSearch
value: ''
type: query
description: The case insensitive 'substring' filter based on the user email.
- name: sortProperty
value: ''
type: query
description: Property of entity to sort by
- name: sortOrder
value: ''
type: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
docs: "Returns a page of users owned by tenant. 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' authority."
- info:
name: Get Customer Users (getCustomerUsers)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/customer/:customerId/users
params:
- name: customerId
value: ''
type: path
description: A string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
- name: pageSize
value: ''
type: query
description: Maximum amount of entities in a one page
- name: page
value: ''
type: query
description: Sequence number of page starting from 0
- name: textSearch
value: ''
type: query
description: The case insensitive 'substring' filter based on the user email.
- name: sortProperty
value: ''
type: query
description: Property of entity to sort by
- name: sortOrder
value: ''
type: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
docs: "Returns a page of users owned by customer. 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 'TENANT_ADMIN' authority."
- info:
name: Delete User Settings (deleteUserSettings)
type: http
http:
method: DELETE
url: https://demo.thingsboard.io/api/user/settings/:type/:paths
params:
- name: paths
value: ''
type: path
description: paths
- name: type
value: ''
type: path
description: 'Settings type, case insensitive, one of: "general", "quick_links", "doc_links" or "dashboards".'
docs: "Delete user settings by specifying list of json element xpaths. \n Example: to delete B and C element in { \"A\"\
: {\"B\": 5}, \"C\": 15} send A.B,C in jsonPaths request parameter"
- info:
name: Delete User Settings (deleteUserSettings)
type: http
http:
method: DELETE
url: https://demo.thingsboard.io/api/user/settings/:paths
params:
- name: paths
value: ''
type: path
description: paths
docs: "Delete user settings by specifying list of json element xpaths. \n Example: to delete B and C element in { \"A\"\
: {\"B\": 5}, \"C\": 15} send A.B,C in jsonPaths request parameter"
- info:
name: tenant-controller
type: folder
items:
- info:
name: Create or Update Tenant (saveTenant)
type: http
http:
method: POST
url: https://demo.thingsboard.io/api/tenant
body:
type: json
data: '{}'
docs: Create or update the Tenant. When creating tenant, platform generates Tenant Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)).
Default Rule Chain and Device profile are also generated for the new tenants automatically. The newly created Tenant
Id will be present in the response. Specify existing Tenant Id id to update the Tenant. Referencing non-existing Tenant
Id will cause 'Not Found' error.Remove 'id', 'tenantId' from t
- info:
name: Get Tenants (getTenants)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/tenants
params:
- name: tenantIds
value: ''
type: query
description: A list of tenant ids, separated by comma ','
- name: pageSize
value: ''
type: query
description: Maximum amount of entities in a one page
- name: page
value: ''
type: query
description: Sequence number of page starting from 0
- name: textSearch
value: ''
type: query
description: The case insensitive 'substring' filter based on the tenant name.
- name: sortProperty
value: ''
type: query
description: Property of entity to sort by
- name: sortOrder
value: ''
type: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
docs: "Returns a page of tenants 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' authority."
- info:
name: Get Tenants Info (getTenants)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/tenantInfos
params:
- name: pageSize
value: ''
type: query
description: Maximum amount of entities in a one page
- name: page
value: ''
type: query
description: Sequence number of page starting from 0
- name: textSearch
value: ''
type: query
description: The case insensitive 'substring' filter based on the tenant name.
- name: sortProperty
value: ''
type: query
description: Property of entity to sort by
- name: sortOrder
value: ''
type: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
docs: "Returns a page of tenant info objects registered in the platform. The Tenant Info object extends regular Tenant\
\ object and includes Tenant Profile name. 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' authority."
- info:
name: Get Tenant (getTenantById)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/tenant/:tenantId
params:
- name: tenantId
value: ''
type: path
description: A string value representing the tenant id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
docs: "Fetch the Tenant object based on the provided Tenant Id. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN'\
\ authority."
- info:
name: Delete Tenant (deleteTenant)
type: http
http:
method: DELETE
url: https://demo.thingsboard.io/api/tenant/:tenantId
params:
- name: tenantId
value: ''
type: path
description: A string value representing the tenant id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
docs: 'Deletes the tenant, it''s customers, rule chains, devices and all other related entities. Referencing non-existing
tenant Id will cause an error.
Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
- info:
name: Get Tenant Info (getTenantInfoById)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/tenant/info/:tenantId
params:
- name: tenantId
value: ''
type: path
description: A string value representing the tenant id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
docs: "Fetch the Tenant Info object based on the provided Tenant Id. The Tenant Info object extends regular Tenant object\
\ and includes Tenant Profile name. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority."
- info:
name: tenant-profile-controller
type: folder
items:
- info:
name: Create or Update Tenant Profile (saveTenantProfile)
type: http
http:
method: POST
url: https://demo.thingsboard.io/api/tenantProfile
body:
type: json
data: '{}'
docs: "Create or update the Tenant Profile. When creating tenant profile, platform generates Tenant Profile Id as [time-based\
\ UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)). The newly\
\ created Tenant Profile Id will be present in the response. Specify existing Tenant Profile Id id to update the Tenant\
\ Profile. Referencing non-existing Tenant Profile Id will cause 'Not Found' error. \n\nUpdate of the tenant profile\
\ configuration will cause immediate"
- info:
name: Make Tenant Profile Default (setDefaultTenantProfile)
type: http
http:
method: POST
url: https://demo.thingsboard.io/api/tenantProfile/:tenantProfileId/default
params:
- name: tenantProfileId
value: ''
type: path
description: A string value representing the tenant profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
docs: "Makes specified tenant profile to be default. Referencing non-existing tenant profile Id will cause an error. \n\
\nAvailable for users with 'SYS_ADMIN' authority."
- info:
name: Get Tenant Profiles (getTenantProfiles)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/tenantProfiles
params:
- name: pageSize
value: ''
type: query
description: Maximum amount of entities in a one page
- name: page
value: ''
type: query
description: Sequence number of page starting from 0
- name: textSearch
value: ''
type: query
description: The case insensitive 'substring' filter based on the tenant profile name.
- name: sortProperty
value: ''
type: query
description: Property of entity to sort by
- name: sortOrder
value: ''
type: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
- name: ids
value: ''
type: query
description: Comma-separated list of tenant profile ids
docs: "Returns a page of tenant profiles 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' authority."
- info:
name: Get Tenant Profiles Info (getTenantProfileInfos)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/tenantProfileInfos
params:
- name: pageSize
value: ''
type: query
description: Maximum amount of entities in a one page
- name: page
value: ''
type: query
description: Sequence number of page starting from 0
- name: textSearch
value: ''
type: query
description: The case insensitive 'substring' filter based on the tenant profile name.
- name: sortProperty
value: ''
type: query
description: Property of entity to sort by
- name: sortOrder
value: ''
type: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
docs: "Returns a page of tenant profile info objects registered in the platform. Tenant Profile Info is a lightweight\
\ object that contains only id and name of the profile. 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' authority."
- info:
name: Get Tenant Profile Info (getTenantProfileInfoById)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/tenantProfileInfo/:tenantProfileId
params:
- name: tenantProfileId
value: ''
type: path
description: A string value representing the tenant profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
docs: "Fetch the Tenant Profile Info object based on the provided Tenant Profile Id. Tenant Profile Info is a lightweight\
\ object that contains only id and name of the profile. \n\nAvailable for users with 'SYS_ADMIN' authority."
- info:
name: Get Default Tenant Profile Info (getDefaultTenantProfileInfo)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/tenantProfileInfo/default
docs: "Fetch the default Tenant Profile Info object based. Tenant Profile Info is a lightweight object that contains only\
\ id and name of the profile. \n\nAvailable for users with 'SYS_ADMIN' authority."
- info:
name: Get Tenant Profile (getTenantProfileById)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/tenantProfile/:tenantProfileId
params:
- name: tenantProfileId
value: ''
type: path
description: A string value representing the tenant profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
docs: "Fetch the Tenant Profile object based on the provided Tenant Profile Id. \n\nAvailable for users with 'SYS_ADMIN'\
\ authority."
- info:
name: Delete Tenant Profile (deleteTenantProfile)
type: http
http:
method: DELETE
url: https://demo.thingsboard.io/api/tenantProfile/:tenantProfileId
params:
- name: tenantProfileId
value: ''
type: path
description: A string value representing the tenant profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
docs: "Deletes the tenant profile. Referencing non-existing tenant profile Id will cause an error. Referencing profile\
\ that is used by the tenants will cause an error. \n\nAvailable for users with 'SYS_ADMIN' authority."
- info:
name: customer-controller
type: folder
items:
- info:
name: Create or Update Customer (saveCustomer)
type: http
http:
method: POST
url: https://demo.thingsboard.io/api/customer
params:
- name: nameConflictPolicy
value: ''
type: query
description: 'Optional value of name conflict policy. Possible values: FAIL or UNIQUIFY. If omitted, FAIL policy
is applied. FAIL policy implies exception will be thrown if an entity with the same name already exists. UNIQUIFY
policy appends a suffix to the entity name, if a name conflict occurs.'
- name: uniquifySeparator
value: ''
type: query
description: Optional value of name suffix separator used by UNIQUIFY policy. By default, underscore separator is
used. For example, strategy is UNIQUIFY, separator is '-'; if a name conflict occurs for entity name 'test-name',
created entity will have name like 'test-name-7fsh4f'.
- name: uniquifyStrategy
value: ''
type: query
description: 'Optional value of uniquify strategy used by UNIQUIFY policy. Possible values: RANDOM or INCREMENTAL.
By default, RANDOM strategy is used, which means random alphanumeric string will be added as a suffix to entity
name. INCREMENTAL implies the first possible number starting from 1 will be added as a name suffix. For example,
strategy is UNIQUIFY, uniquify strategy is INCREMENTAL; if a name conflict occurs for entity name ''test-name'',
created entity will have name like ''test-name-1.'
body:
type: json
data: '{}'
docs: "Creates or Updates the Customer. When creating customer, platform generates Customer Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)).\
\ The newly created Customer Id will be present in the response. Specify existing Customer Id to update the Customer.\
\ Referencing non-existing Customer Id will cause 'Not Found' error.Remove 'id', 'tenantId' from the request body example\
\ (below) to create new Customer entity. \n\nAvailable for "
- info:
name: Get Tenant Customer by Customer Title (getTenantCustomer)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/tenant/customers
params:
- name: customerTitle
value: ''
type: query
description: A string value representing the Customer title.
docs: "Get the Customer using Customer Title. \n\nAvailable for users with 'TENANT_ADMIN' authority."
- info:
name: Get Customers by Customer Ids (getCustomersByIds)
type: http
http:
method: GET
url: https://demo.thingsboard.io/api/customers
params:
- name: pageSize
value: ''
type: query
description: Maximum amount of entities in a one page
- name: page
value: ''
type: query
description: Sequence number of page starting from 0
- name: textSearch
value: ''
type: query
description: The case insensitive 'substring' filter based on the customer title.
- name: sortProperty
value: ''
type: query
description: Property of entity to sort by
- name: sortOrder
value: ''
type: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
- name: customerIds
value: ''
type: query
description: A list of customer ids, separated by comma ','
do
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/thingsboard/refs/heads/main/apis.yml