Viridi Customer Controller API
The customer-controller API from Viridi — 6 operation(s) for customer-controller.
The customer-controller API from Viridi — 6 operation(s) for customer-controller.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/viridi-parente-customer-controller-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
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