Viridi Customer Controller API

The customer-controller API from Viridi — 6 operation(s) for customer-controller.

Operations 7

POST /api/customer Create or update Customer (saveCustomer) #
GET /api/tenant/customers Get Tenant Customer by Customer title (getTenantCustomer) #
GET /api/customers Get Tenant Customers (getCustomers) #
GET /api/customer/{customerId} Get Customer (getCustomerById) #
DELETE /api/customer/{customerId} Delete Customer (deleteCustomer) #
GET /api/customer/{customerId}/title Get Customer Title (getCustomerTitleById) #
GET /api/customer/{customerId}/shortInfo Get short Customer info (getShortCustomerInfoById) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/viridi-parente-customer-controller-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

viridi-parente-customer-controller-api-openapi.yml Raw ↑
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