Kaseya Tickets API

The Tickets API from Kaseya — 60 operation(s) for tickets.

Operations 91

GET /V1.0/Tickets/query #
POST /V1.0/Tickets/query #
GET /V1.0/Tickets/{id} #
GET /V1.0/Tickets/query/count #
POST /V1.0/Tickets/query/count #
PUT /V1.0/Tickets #
POST /V1.0/Tickets #
PATCH /V1.0/Tickets #
GET /V1.0/Tickets/entityInformation #
GET /V1.0/Tickets/entityInformation/fields #
GET /V1.0/Tickets/entityInformation/userDefinedFields #
GET /v2/servicedesk/tickets/{ticketId}/notes #
POST /v2/servicedesk/tickets/{ticketId}/notes #
GET /v2/servicedesk/tickets/{ticketId}/notes/{noteId} #
PUT /v2/servicedesk/tickets/{ticketId}/notes/{noteId} #
DELETE /v2/servicedesk/tickets/{ticketId}/notes/{noteId} #
POST /v2/servicedesk/tickets/{ticketId}/assignticket #
POST /v2/servicedesk/tickets/{ticketId}/resolve #
GET /v2/servicedesk/tickets/{ticketId}/timelogs #
POST /v2/servicedesk/tickets/{ticketId}/timelogs #
GET /v2/servicedesk/tickets/{ticketId}/timelogs/{timeEntryId} #
PUT /v2/servicedesk/tickets/{ticketId}/timelogs/{timeEntryId} #
DELETE /v2/servicedesk/tickets/{ticketId}/timelogs/{timeEntryId} #
GET /v2/servicedesk/tickets #
POST /v2/servicedesk/tickets #
DELETE /v2/servicedesk/tickets #
PATCH /v2/servicedesk/tickets #
POST /v2/servicedesk/tickets/search #
GET /v2/servicedesk/tickets/{ticketId} #
PUT /v2/servicedesk/tickets/{ticketId} #
PATCH /v2/servicedesk/tickets/{ticketId} #
DELETE /v2/servicedesk/tickets/{ticketId} #
GET /v2/servicedesk/tickets/summary #
GET /v2/servicedesk/tickets/searchselect #
GET /v2/servicedesk/tickets/count #
GET /v2/servicedesk/tickets/{ticketId}/servicecallstodos #
DELETE /v2/servicedesk/tickets/{ticketId}/servicecallstodos #
GET /v2/servicedesk/tickets/{ticketId}/servicecalls #
POST /v2/servicedesk/tickets/{ticketId}/servicecalls #
GET /v2/servicedesk/tickets/{ticketId}/servicecalls/{serviceCallId} #
PUT /v2/servicedesk/tickets/{ticketId}/servicecalls/{serviceCallId} #
DELETE /v2/servicedesk/tickets/{ticketId}/servicecalls/{serviceCallId} #
GET /v2/servicedesk/tickets/{ticketId}/todos/{toDoId} #
PUT /v2/servicedesk/tickets/{ticketId}/todos/{toDoId} #
DELETE /v2/servicedesk/tickets/{ticketId}/todos/{toDoId} #
POST /v2/servicedesk/tickets/{ticketId}/todos #
GET /v2/servicedesk/tickets/{ticketId}/activities #
GET /v2/servicedesk/tickets/{ticketId}/expensesandcharges #
GET /v2/servicedesk/tickets/{ticketId}/expenses/{expenseId} #
PUT /v2/servicedesk/tickets/{ticketId}/expenses/{expenseId} #
DELETE /v2/servicedesk/tickets/{ticketId}/expenses/{expenseId} #
POST /v2/servicedesk/tickets/{ticketId}/expenses #
GET /v2/servicedesk/tickets/{ticketId}/charges/{chargeId} #
PUT /v2/servicedesk/tickets/{ticketId}/charges/{chargeId} #
DELETE /v2/servicedesk/tickets/{ticketId}/charges/{chargeId} #
GET /v2/servicedesk/tickets/{ticketId}/charges/{chargeId}/productsummary #
GET /v2/servicedesk/tickets/{ticketId}/charges/{chargeId}/assets #
GET /v2/servicedesk/tickets/{ticketId}/charges/{chargeId}/history #
POST /v2/servicedesk/tickets/{ticketId}/charges #
POST /v2/servicedesk/tickets/{ticketId}/charges/{chargeId}/purchaseorder #
POST /v2/servicedesk/tickets/{ticketId}/charges/{chargeId}/deliver #
GET /v2/servicedesk/tickets/{ticketId}/surveyhistory #
GET /v2/servicedesk/tickets/ticketCcs/{accountId} #
POST /v2/servicedesk/tickets/merge #
GET /v2/servicedesk/tickets/{ticketId}/relatedTickets #
POST /v2/servicedesk/tickets/{ticketId}/relatedTickets #
GET /v2/servicedesk/tickets/{ticketId}/relatedTickets/count #
DELETE /v2/servicedesk/tickets/relatedTickets #
GET /v2/servicedesk/tickets/{ticketId}/relatedalerts #
GET /v2/servicedesk/tickets/{ticketId}/relatedtasks #
POST /v2/servicedesk/tickets/{ticketId}/relatedtasks #
GET /v2/servicedesk/tickets/{ticketId}/tickettabsindicators/count #
DELETE /v2/servicedesk/tickets/relatedtasks #
GET /v2/servicedesk/tickets/{ticketId}/relatedtasks/count #
GET /v2/servicedesk/tickets/logs/{jobId} #
GET /v2/servicedesk/tickets/{ticketId}/auditlogs #
GET /v2/servicedesk/tickets/{ticketId}/workflowlogs #
GET /v2/servicedesk/tickets/{ticketId}/agentProcedureAudit #
GET /v2/servicedesk/tickets/{ticketId}/slainfo #
POST /v2/servicedesk/tickets/{ticketId}/checklistitems #
DELETE /v2/servicedesk/tickets/{ticketId}/checklistitems #
GET /v2/servicedesk/tickets/{ticketId}/checklistitems #
PUT /v2/servicedesk/tickets/{ticketId}/checklistitems/{itemId} #
DELETE /v2/servicedesk/tickets/{ticketId}/checklistitems/{itemId} #
POST /v2/servicedesk/tickets/{ticketId}/checklistitems/{checklistId} #
POST /v2/servicedesk/tickets/{ticketId}/checklist #
POST /v2/clientportal/tickets/searchtickets #
POST /v2/clientportal/tickets #
GET /v2/clientportal/tickets/{ticketId} #
GET /v2/clientportal/tickets/{ticketId}/activities #
POST /v2/clientportal/tickets/{ticketId}/notes #

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-tickets-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-tickets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Kaseya Tickets API
  version: '1.0'
  description: 'Operations tagged Tickets across 2 of this provider''s published API definitions: kaseya-autotask-psa-openapi-original.json, kaseya-bms-openapi-original.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://webservices2.autotask.net/ATServicesRest
- url: https://api.bms.kaseya.com
tags:
- name: Tickets
paths:
  /V1.0/Tickets/query:
    get:
      tags:
      - Tickets
      operationId: Tickets_UrlParameterQuery
      parameters:
      - name: search
        in: query
        required: true
        schema:
          type: string
      - name: ApiIntegrationCode
        in: header
        description: API Integration Code
        required: true
        schema:
          type: string
      - name: UserName
        in: header
        description: User Name
        required: true
        schema:
          type: string
      - name: Secret
        in: header
        description: Secret
        required: true
        schema:
          type: string
      - name: ImpersonationResourceId
        in: header
        description: Impersonation Resource Key
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryActionResult_TicketModel_Ticket'
            text/json:
              schema:
                $ref: '#/components/schemas/QueryActionResult_TicketModel_Ticket'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    post:
      tags:
      - Tickets
      operationId: Tickets_Query
      parameters:
      - name: ApiIntegrationCode
        in: header
        description: API Integration Code
        required: true
        schema:
          type: string
      - name: UserName
        in: header
        description: User Name
        required: true
        schema:
          type: string
      - name: Secret
        in: header
        description: Secret
        required: true
        schema:
          type: string
      - name: ImpersonationResourceId
        in: header
        description: Impersonation Resource Key
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryActionResult_TicketModel_Ticket'
            text/json:
              schema:
                $ref: '#/components/schemas/QueryActionResult_TicketModel_Ticket'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryModel'
        required: true
    servers:
    - url: https://webservices2.autotask.net/ATServicesRest
  /V1.0/Tickets/{id}:
    get:
      tags:
      - Tickets
      operationId: Tickets_QueryItem
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: ApiIntegrationCode
        in: header
        description: API Integration Code
        required: true
        schema:
          type: string
      - name: UserName
        in: header
        description: User Name
        required: true
        schema:
          type: string
      - name: Secret
        in: header
        description: Secret
        required: true
        schema:
          type: string
      - name: ImpersonationResourceId
        in: header
        description: Impersonation Resource Key
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemQueryResultModel_TicketModel_Ticket'
            text/json:
              schema:
                $ref: '#/components/schemas/ItemQueryResultModel_TicketModel_Ticket'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    servers:
    - url: https://webservices2.autotask.net/ATServicesRest
  /V1.0/Tickets/query/count:
    get:
      tags:
      - Tickets
      operationId: Tickets_UrlParameterQueryCount
      parameters:
      - name: search
        in: query
        required: true
        schema:
          type: string
      - name: ApiIntegrationCode
        in: header
        description: API Integration Code
        required: true
        schema:
          type: string
      - name: UserName
        in: header
        description: User Name
        required: true
        schema:
          type: string
      - name: Secret
        in: header
        description: Secret
        required: true
        schema:
          type: string
      - name: ImpersonationResourceId
        in: header
        description: Impersonation Resource Key
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryCountResultModel'
            text/json:
              schema:
                $ref: '#/components/schemas/QueryCountResultModel'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    post:
      tags:
      - Tickets
      operationId: Tickets_QueryCount
      parameters:
      - name: ApiIntegrationCode
        in: header
        description: API Integration Code
        required: true
        schema:
          type: string
      - name: UserName
        in: header
        description: User Name
        required: true
        schema:
          type: string
      - name: Secret
        in: header
        description: Secret
        required: true
        schema:
          type: string
      - name: ImpersonationResourceId
        in: header
        description: Impersonation Resource Key
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryCountResultModel'
            text/json:
              schema:
                $ref: '#/components/schemas/QueryCountResultModel'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryModel'
        required: true
    servers:
    - url: https://webservices2.autotask.net/ATServicesRest
  /V1.0/Tickets:
    put:
      tags:
      - Tickets
      operationId: Tickets_UpdateEntity
      parameters:
      - name: ApiIntegrationCode
        in: header
        description: API Integration Code
        required: true
        schema:
          type: string
      - name: UserName
        in: header
        description: User Name
        required: true
        schema:
          type: string
      - name: Secret
        in: header
        description: Secret
        required: true
        schema:
          type: string
      - name: ImpersonationResourceId
        in: header
        description: Impersonation Resource Key
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationResultModel'
            text/json:
              schema:
                $ref: '#/components/schemas/OperationResultModel'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TicketModel'
        required: true
    post:
      tags:
      - Tickets
      operationId: Tickets_CreateEntity
      parameters:
      - name: ApiIntegrationCode
        in: header
        description: API Integration Code
        required: true
        schema:
          type: string
      - name: UserName
        in: header
        description: User Name
        required: true
        schema:
          type: string
      - name: Secret
        in: header
        description: Secret
        required: true
        schema:
          type: string
      - name: ImpersonationResourceId
        in: header
        description: Impersonation Resource Key
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationResultModel'
            text/json:
              schema:
                $ref: '#/components/schemas/OperationResultModel'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TicketModel'
        required: true
    patch:
      tags:
      - Tickets
      operationId: Tickets_PatchEntity
      parameters:
      - name: ApiIntegrationCode
        in: header
        description: API Integration Code
        required: true
        schema:
          type: string
      - name: UserName
        in: header
        description: User Name
        required: true
        schema:
          type: string
      - name: Secret
        in: header
        description: Secret
        required: true
        schema:
          type: string
      - name: ImpersonationResourceId
        in: header
        description: Impersonation Resource Key
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationResultModel'
            text/json:
              schema:
                $ref: '#/components/schemas/OperationResultModel'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TicketModel'
        required: true
    servers:
    - url: https://webservices2.autotask.net/ATServicesRest
  /V1.0/Tickets/entityInformation:
    get:
      tags:
      - Tickets
      operationId: Tickets_QueryEntityInformation
      parameters:
      - name: ApiIntegrationCode
        in: header
        description: API Integration Code
        required: true
        schema:
          type: string
      - name: UserName
        in: header
        description: User Name
        required: true
        schema:
          type: string
      - name: Secret
        in: header
        description: Secret
        required: true
        schema:
          type: string
      - name: ImpersonationResourceId
        in: header
        description: Impersonation Resource Key
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityInformationResultModel'
            text/json:
              schema:
                $ref: '#/components/schemas/EntityInformationResultModel'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    servers:
    - url: https://webservices2.autotask.net/ATServicesRest
  /V1.0/Tickets/entityInformation/fields:
    get:
      tags:
      - Tickets
      operationId: Tickets_QueryFieldDefinitions
      parameters:
      - name: ApiIntegrationCode
        in: header
        description: API Integration Code
        required: true
        schema:
          type: string
      - name: UserName
        in: header
        description: User Name
        required: true
        schema:
          type: string
      - name: Secret
        in: header
        description: Secret
        required: true
        schema:
          type: string
      - name: ImpersonationResourceId
        in: header
        description: Impersonation Resource Key
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FieldInformationResultModel'
            text/json:
              schema:
                $ref: '#/components/schemas/FieldInformationResultModel'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    servers:
    - url: https://webservices2.autotask.net/ATServicesRest
  /V1.0/Tickets/entityInformation/userDefinedFields:
    get:
      tags:
      - Tickets
      operationId: Tickets_QueryUserDefinedFieldDefinitions
      parameters:
      - name: ApiIntegrationCode
        in: header
        description: API Integration Code
        required: true
        schema:
          type: string
      - name: UserName
        in: header
        description: User Name
        required: true
        schema:
          type: string
      - name: Secret
        in: header
        description: Secret
        required: true
        schema:
          type: string
      - name: ImpersonationResourceId
        in: header
        description: Impersonation Resource Key
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDefinedFieldInformationResultModel'
            text/json:
              schema:
                $ref: '#/components/schemas/UserDefinedFieldInformationResultModel'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    servers:
    - url: https://webservices2.autotask.net/ATServicesRest
  /v2/servicedesk/tickets/{ticketId}/notes:
    get:
      tags:
      - Tickets
      operationId: GetTicketNotes
      parameters:
      - name: ticketId
        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/TicketNoteOutputDtoIEnumerableResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/TicketNoteOutputDtoIEnumerableResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/TicketNoteOutputDtoIEnumerableResponse'
      security:
      - bearerAuth: []
    post:
      tags:
      - Tickets
      operationId: PostTicketNote
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/TicketNotePostInputDto'
          application/json:
            schema:
              $ref: '#/components/schemas/TicketNotePostInputDto'
          text/json:
            schema:
              $ref: '#/components/schemas/TicketNotePostInputDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/TicketNotePostInputDto'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TicketNoteOutputDtoResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/TicketNoteOutputDtoResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/TicketNoteOutputDtoResponse'
      security:
      - bearerAuth: []
    servers:
    - url: https://api.bms.kaseya.com
  /v2/servicedesk/tickets/{ticketId}/notes/{noteId}:
    get:
      tags:
      - Tickets
      operationId: GetTicketNote
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: noteId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TicketNoteOutputDtoResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/TicketNoteOutputDtoResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/TicketNoteOutputDtoResponse'
      security:
      - bearerAuth: []
    put:
      tags:
      - Tickets
      operationId: PutTicketNote
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: noteId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/TicketNotePutInputDto'
          application/json:
            schema:
              $ref: '#/components/schemas/TicketNotePutInputDto'
          text/json:
            schema:
              $ref: '#/components/schemas/TicketNotePutInputDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/TicketNotePutInputDto'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TicketNoteOutputDtoResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/TicketNoteOutputDtoResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/TicketNoteOutputDtoResponse'
      security:
      - bearerAuth: []
    delete:
      tags:
      - Tickets
      operationId: DeleteTicketNote
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: noteId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
      security:
      - bearerAuth: []
    servers:
    - url: https://api.bms.kaseya.com
  /v2/servicedesk/tickets/{ticketId}/assignticket:
    post:
      tags:
      - Tickets
      operationId: AssignTicket
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/AssignTicketInputDto'
          application/json:
            schema:
              $ref: '#/components/schemas/AssignTicketInputDto'
          text/json:
            schema:
              $ref: '#/components/schemas/AssignTicketInputDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/AssignTicketInputDto'
      responses:
        '200':
          description: OK
      security:
      - bearerAuth: []
    servers:
    - url: https://api.bms.kaseya.com
  /v2/servicedesk/tickets/{ticketId}/resolve:
    post:
      tags:
      - Tickets
      operationId: ResolveTicket
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ResolveTicketDto'
          application/json:
            schema:
              $ref: '#/components/schemas/ResolveTicketDto'
          text/json:
            schema:
              $ref: '#/components/schemas/ResolveTicketDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ResolveTicketDto'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TicketOutputDtoResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/TicketOutputDtoResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/TicketOutputDtoResponse'
      security:
      - bearerAuth: []
    servers:
    - url: https://api.bms.kaseya.com
  /v2/servicedesk/tickets/{ticketId}/timelogs:
    get:
      tags:
      - Tickets
      operationId: GetTicketTimeEntries
      parameters:
      - name: ticketId
        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/TicketTimeEntryOutputDtoIEnumerableResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/TicketTimeEntryOutputDtoIEnumerableResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/TicketTimeEntryOutputDtoIEnumerableResponse'
      security:
      - bearerAuth: []
    post:
      tags:
      - Tickets
      operationId: PostTicketTimeEntry
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/TicketTimeEntryInputDto'
          application/json:
            schema:
              $ref: '#/components/schemas/TicketTimeEntryInputDto'
          text/json:
            schema:
              $ref: '#/components/schemas/TicketTimeEntryInputDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/TicketTimeEntryInputDto'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TicketTimeEntryOutputDtoResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/TicketTimeEntryOutputDtoResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/TicketTimeEntryOutputDtoResponse'
      security:
      - bearerAuth: []
    servers:
    - url: https://api.bms.kaseya.com
  /v2/servicedesk/tickets/{ticketId}/timelogs/{timeEntryId}:
    get:
      tags:
      - Tickets
      operationId: GetTicketTimeEntry
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: timeEntryId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TicketTimeEntryOutputDtoResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/TicketTimeEntryOutputDtoResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/TicketTimeEntryOutputDtoResponse'
      security:
      - bearerAuth: []
    put:
      tags:
      - Tickets
      operationId: PutTicketTimeEntry
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: timeEntryId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/TicketTimeEntryInputDto'
          application/json:
            schema:
              $ref: '#/components/schemas/TicketTimeEntryInputDto'
          text/json:
            schema:
              $ref: '#/components/schemas/TicketTimeEntryInputDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/TicketTimeEntryInputDto'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TicketTimeEntryOutputDtoResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/TicketTimeEntryOutputDtoResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/TicketTimeEntryOutputDtoResponse'
      security:
      - bearerAuth: []
    delete:
      tags:
      - Tickets
      operationId: DeleteTicketTimeEntry
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: timeEntryId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
      security:
      - bearerAuth: []
    servers:
    - url: https://api.bms.kaseya.com
  /v2/servicedesk/tickets:
    get:
      tags:
      - Tickets
      operationId: GetTickets
      parameters:
      - name: Filter.IsScheduled
        in: query
        schema:
          type: integer
          format: int32
      - name: Filter.IsRecurringTickets
        in: query
        schema:
          type: integer
          format: int32
      - name: Filter.Title
        in: query
        schema:
          type: string
      - name: Filter.Account
        in: query
        schema:
          type: string
      - name: Filter.LocationName
        in: query
        schema:
          type: string
      - name: Filter.AccountCode
        in: query
        schema:
          type: string
      - name: Filter.AssigneeName
        in: query
        schema:
          type: string
      - name: Filter.TicketNumber
        in: query
        schema:
          type: string
      - name: Filter.CreatedByName
        in: query
        schema:
          type: string
      - name: Filter.Details
        in: query
        schema:
          type: string
      - name: Filter.ContactName
        in: query
        schema:
          type: string
      - name: Filter.StatusNames
        in: query
        schema:
          type: string
      - name: Filter.QueueNames
        in: query
        schema:
          type: string
      - name: Filter.PriorityNames
        in: query
        schema:
          type: string
      - name: Filter.TicketTypeNames
        in: query
        schema:
          type: string
      - name: Filter.IssueTypeNames
        in: query
        schema:
          type: string
      - name: Filter.ServiceLevelAgreementNames
        in: query
        schema:
          type: string
      - name: Filter.SubIssueTypeNames
        in: query
        schema:
          type: string
      - name: Filter.SourceIds
        in: query
        schema:
          type: string
      - name: Filter.ExcludeCompleted
        in: query
        schema:
          type: integer
          format: int32
      - name: Filter.OpenDateFrom
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.OpenDateTo
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.CompletedDateFrom
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.CompletedDateTo
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.LastActivityUpdateFrom
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.LastActivityUpdateTo
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.CreatedOnFrom
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.CreatedOnTo
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.LastStatusUpdateFrom
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.LastStatusUpdateTo
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.LastPriorityUpdateFrom
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.LastPriorityUpdateTo
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.LastQueueUpdateFrom
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.LastQueueUpdateTo
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.DueDateFrom
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.DueDateTo
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.ResolutionTargetTimeFrom
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.ResolutionTargetTimeTo
        in: query
        schema:
          type: string
          format: date-time
      - name: Filter.ContactId
        in: query
        schema:
          type: integer
          format: int32
      - name: Filter.HardwareAssetId
        in: query
        schema:
          type: integer
          format: int32
      - name: Filter.AccountLocationId
        in: query
        schema:
          type: integer
          format: int32
      - name: Filter.AccountIds
        in: query
        schema:
          type: string
      - name: Filter.SLAEventStatusIds
        in: query
        schema:
          type: string
      - name: Filter.FromDate
        in: query
        schema:
          type: string
      - name: Filter.ToDate
        in: query
        schema:
          type: string
      - name: Filter.Value
        in: query
        schema:
          type: string
      - name: Filter.ActionType
        in: query
        schema:
          type: integer
          format: int32
      - name: Filter.HardwareAssetName
        in: query
        schema:
          type: string
      - name: Filter.OwnerIds
        in: query
        schema:
          type: string
      - 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/

# --- truncated at 32 KB (225 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kaseya/refs/heads/main/openapi/kaseya-tickets-api-openapi.yml