openapi: 3.2.0 info: title: ThingsBoard REST Customer Controller API description: ThingsBoard open-source IoT platform REST API documentation. contact: name: ThingsBoard team url: https://thingsboard.io email: info@thingsboard.io license: name: Apache License Version 2.0 url: https://github.com/thingsboard/thingsboard/blob/master/LICENSE version: 3.7.0 servers: - url: https://vista.viridiparente.com description: Generated server url tags: - name: Customer Controller paths: /api/customer: post: tags: - Customer Controller summary: Create or update Customer (saveCustomer) description: 'Creates or Updates the Customer. When creating customer, platform generates Customer Id as time-based UUID). 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. Available for users with ''TENANT_ADMIN'' authority.' operationId: saveCustomer requestBody: description: A JSON value representing the customer. content: application/json: schema: $ref: '#/components/schemas/Customer' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Customer' /api/tenant/customers: get: tags: - Customer Controller summary: Get Tenant Customer by Customer title (getTenantCustomer) description: 'Get the Customer using Customer Title. Available for users with ''TENANT_ADMIN'' authority.' operationId: getTenantCustomer parameters: - name: customerTitle in: query description: A string value representing the Customer title. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Customer' /api/customers: get: tags: - Customer Controller summary: Get Tenant Customers (getCustomers) description: 'Returns a page of customers 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 the ''Model'' tab of the Response Class for more details. Available for users with ''TENANT_ADMIN'' authority.' operationId: getCustomers 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: The case insensitive 'substring' filter based on the customer title. required: false schema: type: string - name: sortProperty in: query description: Property of entity to sort by required: false schema: enum: - createdTime - title - email - country - city - name: sortOrder in: query description: Sort order. ASC (ASCENDING) or DESC (DESCENDING) required: false schema: enum: - ASC - DESC responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PageDataCustomer' /api/customer/{customerId}: get: tags: - Customer Controller summary: Get Customer (getCustomerById) description: 'Get the Customer object based on the provided Customer Id. If the user has the authority of ''Tenant Administrator'', the server checks that the customer is owned by the same tenant. If the user has the authority of ''Customer User'', the server checks that the user belongs to the customer. Available for users with ''TENANT_ADMIN'' or ''CUSTOMER_USER'' authority.' operationId: getCustomerById parameters: - name: customerId in: path description: A string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9' required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Customer' delete: tags: - Customer Controller summary: Delete Customer (deleteCustomer) description: 'Deletes the Customer and all customer Users. All assigned Dashboards, Assets, Devices, etc. will be unassigned but not deleted. Referencing non-existing Customer Id will cause an error. Available for users with ''TENANT_ADMIN'' authority.' operationId: deleteCustomer parameters: - name: customerId in: path description: A string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9' required: true schema: type: string responses: '200': description: OK /api/customer/{customerId}/title: get: tags: - Customer Controller summary: Get Customer Title (getCustomerTitleById) description: 'Get the title of the customer. If the user has the authority of ''Tenant Administrator'', the server checks that the customer is owned by the same tenant. If the user has the authority of ''Customer User'', the server checks that the user belongs to the customer. Available for users with ''TENANT_ADMIN'' or ''CUSTOMER_USER'' authority.' operationId: getCustomerTitleById parameters: - name: customerId in: path description: A string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9' required: true schema: type: string responses: '200': description: OK content: application/text: schema: type: string /api/customer/{customerId}/shortInfo: get: tags: - Customer Controller summary: Get short Customer info (getShortCustomerInfoById) description: 'Get the short customer object that contains only the title and ''isPublic'' flag. If the user has the authority of ''Tenant Administrator'', the server checks that the customer is owned by the same tenant. If the user has the authority of ''Customer User'', the server checks that the user belongs to the customer. Available for users with ''TENANT_ADMIN'' or ''CUSTOMER_USER'' authority.' operationId: getShortCustomerInfoById parameters: - name: customerId in: path description: A string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9' required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/JsonNode' components: schemas: PageDataCustomer: properties: data: type: array description: Array of the entities items: $ref: '#/components/schemas/Customer' readOnly: true totalPages: type: integer format: int32 description: Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria readOnly: true totalElements: type: integer format: int64 description: Total number of elements in all available pages readOnly: true hasNext: type: boolean description: '''false'' value indicates the end of the result set' readOnly: true CustomerId: properties: id: type: string format: uuid description: ID of the entity, time-based UUID v1 example: 784f394c-42b6-435a-983c-b7beff2784f9 entityType: type: string description: string enum: - CUSTOMER example: CUSTOMER required: - entityType - id Customer: properties: id: $ref: '#/components/schemas/CustomerId' description: JSON object with the customer Id. Specify this field to update the customer. Referencing non-existing customer Id will cause error. Omit this field to create new customer. createdTime: type: integer format: int64 description: Timestamp of the customer creation, in milliseconds example: 1609459200000 readOnly: true country: type: string description: Country example: US state: type: string description: State example: NY city: type: string description: City example: New York address: type: string description: Address Line 1 example: 42 address2: type: string description: Address Line 2 zip: type: string description: Zip code example: 10004 phone: type: string description: Phone number example: +1(415)777-7777 email: type: string description: Email example: example@company.com title: type: string description: Title of the customer example: Company A tenantId: $ref: '#/components/schemas/TenantId' description: JSON object with Tenant Id name: type: string description: Name of the customer. Read-only, duplicated from title for backward compatibility example: Company A readOnly: true additionalInfo: $ref: '#/components/schemas/JsonNode' description: Additional parameters of the device required: - email - title TenantId: properties: id: type: string format: uuid description: ID of the entity, time-based UUID v1 example: 784f394c-42b6-435a-983c-b7beff2784f9 entityType: type: string description: string enum: - TENANT example: TENANT required: - entityType - id JsonNode: description: A value representing the any type (object or primitive) examples: - {} securitySchemes: HTTP_login_form: type: http description: Enter Username / Password scheme: loginPassword bearerFormat: /api/auth/login|X-Authorization