Viridi Image Controller API

The image-controller API from Viridi — 9 operation(s) for image-controller.

Operations 12

GET /api/images/{type}/{key} Download image #
PUT /api/images/{type}/{key} Update image #
DELETE /api/images/{type}/{key} Delete image #
PUT /api/images/{type}/{key}/public/{isPublic} Update image public status #
GET /api/images/{type}/{key}/info Get image info #
PUT /api/images/{type}/{key}/info Update image info #
PUT /api/image/import Import image #
POST /api/image Upload image #
GET /api/images Get images #
GET /api/images/{type}/{key}/preview Download image preview #
GET /api/images/{type}/{key}/export Export image #
GET /api/images/public/{publicResourceKey} Download public image #

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-image-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-image-controller-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ThingsBoard REST Image 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: image-controller
paths:
  /api/images/{type}/{key}:
    get:
      tags:
      - image-controller
      operationId: downloadImage
      parameters:
      - name: type
        in: path
        description: 'Type of the image: tenant or system'
        required: true
        schema:
          enum:
          - tenant
          - system
      - name: key
        in: path
        description: Image resource key, for example thermostats_dashboard_background.jpeg
        required: true
        schema:
          type: string
      - name: If-None-Match
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            image/*:
              schema:
                type: string
                format: binary
      summary: Download image
      x-summary-source: derived
    put:
      tags:
      - image-controller
      operationId: updateImage
      parameters:
      - name: type
        in: path
        description: 'Type of the image: tenant or system'
        required: true
        schema:
          enum:
          - tenant
          - system
      - name: key
        in: path
        description: Image resource key, for example thermostats_dashboard_background.jpeg
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
              required:
              - file
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TbResourceInfo'
      summary: Update image
      x-summary-source: derived
    delete:
      tags:
      - image-controller
      operationId: deleteImage
      parameters:
      - name: type
        in: path
        description: 'Type of the image: tenant or system'
        required: true
        schema:
          enum:
          - tenant
          - system
      - name: key
        in: path
        description: Image resource key, for example thermostats_dashboard_background.jpeg
        required: true
        schema:
          type: string
      - name: force
        in: query
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TbImageDeleteResult'
      summary: Delete image
      x-summary-source: derived
  /api/images/{type}/{key}/public/{isPublic}:
    put:
      tags:
      - image-controller
      operationId: updateImagePublicStatus
      parameters:
      - name: type
        in: path
        description: 'Type of the image: tenant or system'
        required: true
        schema:
          enum:
          - tenant
          - system
      - name: key
        in: path
        description: Image resource key, for example thermostats_dashboard_background.jpeg
        required: true
        schema:
          type: string
      - name: isPublic
        in: path
        required: true
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TbResourceInfo'
      summary: Update image public status
      x-summary-source: derived
  /api/images/{type}/{key}/info:
    get:
      tags:
      - image-controller
      operationId: getImageInfo
      parameters:
      - name: type
        in: path
        description: 'Type of the image: tenant or system'
        required: true
        schema:
          enum:
          - tenant
          - system
      - name: key
        in: path
        description: Image resource key, for example thermostats_dashboard_background.jpeg
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TbResourceInfo'
      summary: Get image info
      x-summary-source: derived
    put:
      tags:
      - image-controller
      operationId: updateImageInfo
      parameters:
      - name: type
        in: path
        description: 'Type of the image: tenant or system'
        required: true
        schema:
          enum:
          - tenant
          - system
      - name: key
        in: path
        description: Image resource key, for example thermostats_dashboard_background.jpeg
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TbResourceInfo'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TbResourceInfo'
      summary: Update image info
      x-summary-source: derived
  /api/image/import:
    put:
      tags:
      - image-controller
      operationId: importImage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageExportData'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TbResourceInfo'
      summary: Import image
      x-summary-source: derived
  /api/image:
    post:
      tags:
      - image-controller
      operationId: uploadImage
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                title:
                  type: string
              required:
              - file
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TbResourceInfo'
      summary: Upload image
      x-summary-source: derived
  /api/images:
    get:
      tags:
      - image-controller
      operationId: getImages
      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: includeSystemImages
        in: query
        description: Use 'true' to include system images. Disabled by default. Ignored for requests by users with system administrator authority.
        required: false
        schema:
          type: boolean
      - name: textSearch
        in: query
        description: The case insensitive 'substring' filter based on the resource title.
        required: false
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          enum:
          - createdTime
          - title
          - resourceType
          - tenantId
      - 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/PageDataTbResourceInfo'
      summary: Get images
      x-summary-source: derived
  /api/images/{type}/{key}/preview:
    get:
      tags:
      - image-controller
      operationId: downloadImagePreview
      parameters:
      - name: type
        in: path
        description: 'Type of the image: tenant or system'
        required: true
        schema:
          enum:
          - tenant
          - system
      - name: key
        in: path
        description: Image resource key, for example thermostats_dashboard_background.jpeg
        required: true
        schema:
          type: string
      - name: If-None-Match
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            image/png:
              schema:
                type: string
                format: binary
      summary: Download image preview
      x-summary-source: derived
  /api/images/{type}/{key}/export:
    get:
      tags:
      - image-controller
      operationId: exportImage
      parameters:
      - name: type
        in: path
        description: 'Type of the image: tenant or system'
        required: true
        schema:
          enum:
          - tenant
          - system
      - name: key
        in: path
        description: Image resource key, for example thermostats_dashboard_background.jpeg
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageExportData'
      summary: Export image
      x-summary-source: derived
  /api/images/public/{publicResourceKey}:
    get:
      tags:
      - image-controller
      operationId: downloadPublicImage
      parameters:
      - name: publicResourceKey
        in: path
        required: true
        schema:
          type: string
      - name: If-None-Match
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            image/*:
              schema:
                type: string
                format: binary
      summary: Download public image
      x-summary-source: derived
components:
  schemas:
    TbResourceInfo:
      properties:
        id:
          $ref: '#/components/schemas/TbResourceId'
          description: JSON object with the Resource Id. Specify this field to update the Resource. Referencing non-existing Resource Id will cause error. Omit this field to create new Resource.
        createdTime:
          type: integer
          format: int64
          description: Timestamp of the resource creation, in milliseconds
          example: 1609459200000
          readOnly: true
        tenantId:
          $ref: '#/components/schemas/TenantId'
          description: JSON object with Tenant Id. Tenant Id of the resource can't be changed.
          readOnly: true
        title:
          type: string
          description: Resource title.
          example: BinaryAppDataContainer id=19 v1.0
        resourceType:
          type: string
          description: Resource type.
          enum:
          - LWM2M_MODEL
          - JKS
          - PKCS_12
          - JS_MODULE
          - IMAGE
          example: LWM2M_MODEL
          readOnly: true
        resourceKey:
          type: string
          description: Resource key.
          example: '19_1.0'
          readOnly: true
        publicResourceKey:
          type: string
        etag:
          type: string
          description: Resource etag.
          example: 33a64df551425fcc55e4d42a148795d9f25f89d4
          readOnly: true
        fileName:
          type: string
          description: Resource file name.
          example: 19.xml
          readOnly: true
        descriptor:
          $ref: '#/components/schemas/JsonNode'
        name:
          type: string
          readOnly: true
        public:
          type: boolean
        link:
          type: string
          readOnly: true
        publicLink:
          type: string
          readOnly: true
    TbResourceId:
      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:
          - TB_RESOURCE
          example: TB_RESOURCE
      required:
      - entityType
      - id
    HasIdObject:
      properties:
        id: {}
    ImageExportData:
      properties:
        mediaType:
          type: string
        fileName:
          type: string
        title:
          type: string
        resourceKey:
          type: string
        isPublic:
          type: boolean
          writeOnly: true
        publicResourceKey:
          type: string
        data:
          type: string
        public:
          type: boolean
    PageDataTbResourceInfo:
      properties:
        data:
          type: array
          description: Array of the entities
          items:
            $ref: '#/components/schemas/TbResourceInfo'
          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
    TbImageDeleteResult:
      properties:
        success:
          type: boolean
        references:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/HasIdObject'
    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