Kaseya Attachments API

The Attachments API from Kaseya — 6 operation(s) for attachments.

Operations 9

GET /v2/system/attachments/{moduleId}/{objectId} #
POST /v2/system/attachments/{moduleId}/{objectId} #
GET /v2/system/attachments/{moduleId}/{objectId}/{attachmentId} #
DELETE /v2/system/attachments/{moduleId}/{objectId}/{attachmentId} #
PUT /v2/system/attachments/{moduleId}/{objectId}/{attachmentId} #
GET /v2/system/attachments/{moduleId}/{objectId}/{attachmentId}/download #
POST /v2/system/attachments/{moduleId} #
DELETE /v2/system/attachments #
DELETE /v2/system/attachments/temp #

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/kaseya-attachments-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

kaseya-attachments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: BMS API 2.0 Attachments API
  description: Documentation of APIs Version 2.0
  version: '2.0'
servers:
- url: https://api.bms.kaseya.com
security:
- bearerAuth: []
tags:
- name: Attachments
paths:
  /v2/system/attachments/{moduleId}/{objectId}:
    get:
      tags:
      - Attachments
      operationId: GetAttachments
      parameters:
      - name: objectId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: moduleId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: Sort
        in: query
        schema:
          type: string
      - name: Exclude
        in: query
        schema:
          type: string
      - name: PageSize
        in: query
        schema:
          type: integer
          format: int32
      - name: PageNumber
        in: query
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/AttachmentOutputDtoIEnumerablePagedResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentOutputDtoIEnumerablePagedResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/AttachmentOutputDtoIEnumerablePagedResponse'
    post:
      tags:
      - Attachments
      operationId: Post
      parameters:
      - name: objectId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: moduleId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                formFile:
                  type: string
                  format: binary
            encoding:
              formFile:
                style: form
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/AttachmentOutputDtoIEnumerableResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentOutputDtoIEnumerableResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/AttachmentOutputDtoIEnumerableResponse'
  /v2/system/attachments/{moduleId}/{objectId}/{attachmentId}:
    get:
      tags:
      - Attachments
      operationId: GetAttachment
      parameters:
      - name: attachmentId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: objectId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: moduleId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/AttachmentOutputDtoResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentOutputDtoResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/AttachmentOutputDtoResponse'
    delete:
      tags:
      - Attachments
      operationId: DeleteAttachment
      parameters:
      - name: attachmentId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: objectId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: moduleId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
    put:
      tags:
      - Attachments
      operationId: PutAttachment
      parameters:
      - name: attachmentId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: objectId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: moduleId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/AttachmentPutInputDto'
          application/json:
            schema:
              $ref: '#/components/schemas/AttachmentPutInputDto'
          text/json:
            schema:
              $ref: '#/components/schemas/AttachmentPutInputDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/AttachmentPutInputDto'
      responses:
        '200':
          description: OK
  /v2/system/attachments/{moduleId}/{objectId}/{attachmentId}/download:
    get:
      tags:
      - Attachments
      operationId: DownloadAttachment
      parameters:
      - name: attachmentId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: objectId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: moduleId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: width
        in: query
        schema:
          type: integer
          format: int32
      - name: height
        in: query
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/File'
            application/json:
              schema:
                $ref: '#/components/schemas/File'
            text/json:
              schema:
                $ref: '#/components/schemas/File'
  /v2/system/attachments/{moduleId}:
    post:
      tags:
      - Attachments
      operationId: PostTempAttachment
      parameters:
      - name: moduleId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                File:
                  type: string
                  format: binary
            encoding:
              File:
                style: form
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TempAttachmentOuputDtoResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/TempAttachmentOuputDtoResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/TempAttachmentOuputDtoResponse'
  /v2/system/attachments:
    delete:
      tags:
      - Attachments
      operationId: DeleteAttachments
      parameters:
      - name: attachmentIds
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
  /v2/system/attachments/temp:
    delete:
      tags:
      - Attachments
      operationId: DeleteTempAttachments
      requestBody:
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                type: string
          application/json:
            schema:
              type: array
              items:
                type: string
          text/json:
            schema:
              type: array
              items:
                type: string
          application/*+json:
            schema:
              type: array
              items:
                type: string
      responses:
        '200':
          description: OK
components:
  schemas:
    TempAttachmentOuputDto:
      type: object
      properties:
        Name:
          type:
          - string
          - 'null'
        Alias:
          type:
          - string
          - 'null'
        FileType:
          type:
          - string
          - 'null'
        IsUploadedToBlob:
          type:
          - boolean
          - 'null'
      additionalProperties: false
    File:
      type: object
      additionalProperties: false
    AttachmentOutputDto:
      type: object
      properties:
        Id:
          type: integer
          format: int32
        OriginalFileName:
          type:
          - string
          - 'null'
        AliasName:
          type:
          - string
          - 'null'
        FileType:
          type:
          - string
          - 'null'
        ObjectId:
          type:
          - integer
          - 'null'
          format: int32
        ModuleId:
          type:
          - integer
          - 'null'
          format: int32
        Url:
          type:
          - string
          - 'null'
        WebUrl:
          type:
          - string
          - 'null'
        CreatedById:
          type:
          - integer
          - 'null'
          format: int32
        CreatedByName:
          type:
          - string
          - 'null'
        CreatedOn:
          type:
          - string
          - 'null'
          format: date-time
        IsUploadedToBlob:
          type:
          - boolean
          - 'null'
      additionalProperties: false
    ErrorInfo:
      type: object
      properties:
        Code:
          type: integer
          format: int32
        Message:
          type:
          - string
          - 'null'
        Details:
          type:
          - string
          - 'null'
        StackStrace:
          type:
          - string
          - 'null'
        SubErrors:
          type:
          - array
          - 'null'
          items:
            type: string
      additionalProperties: false
    AttachmentPutInputDto:
      required:
      - Name
      type: object
      properties:
        Id:
          type: integer
          format: int32
        Name:
          minLength: 1
          type: string
      additionalProperties: false
    AttachmentOutputDtoResponse:
      type: object
      properties:
        Success:
          type: boolean
          readOnly: true
        Error:
          $ref: '#/components/schemas/ErrorInfo'
        Result:
          $ref: '#/components/schemas/AttachmentOutputDto'
      additionalProperties: false
    TempAttachmentOuputDtoResponse:
      type: object
      properties:
        Success:
          type: boolean
          readOnly: true
        Error:
          $ref: '#/components/schemas/ErrorInfo'
        Result:
          $ref: '#/components/schemas/TempAttachmentOuputDto'
      additionalProperties: false
    AttachmentOutputDtoIEnumerableResponse:
      type: object
      properties:
        Success:
          type: boolean
          readOnly: true
        Error:
          $ref: '#/components/schemas/ErrorInfo'
        Result:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/AttachmentOutputDto'
      additionalProperties: false
    AttachmentOutputDtoIEnumerablePagedResponse:
      type: object
      properties:
        Success:
          type: boolean
          readOnly: true
        Error:
          $ref: '#/components/schemas/ErrorInfo'
        Result:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/AttachmentOutputDto'
        TotalRecords:
          type: integer
          format: int32
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      description: JWT Authorization header using the Bearer scheme.
      scheme: bearer
      bearerFormat: JWT