NinjaOne ticketing API

ticketing

Operations 13

POST /v2/ticketing/ticket Create ticket #
POST /v2/ticketing/ticket/{ticketId}/comment Add comment to ticket #
GET /v2/ticketing/ticket/{ticketId} Ticket #
PUT /v2/ticketing/ticket/{ticketId} Update ticket #
GET /v2/ticketing/ticket/{ticketId}/log-entry List ticket log entries #
GET /v2/ticketing/attributes List ticket attributes #
GET /v2/ticketing/contact/contacts List contacts #
GET /v2/ticketing/ticket-form/{id} Ticket form #
GET /v2/ticketing/ticket-form List ticket forms #
GET /v2/ticketing/statuses Get list of ticket status #
GET /v2/ticketing/trigger/boards List boards #
POST /v2/ticketing/trigger/board/{boardId}/run List of tickets for board #
GET /v2/ticketing/app-user-contact List of users by user type #

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/ninjaone-ticketing-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

ninjaone-ticketing-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: NinjaOne Public API 2.0 Asset Tags Ticketing API
  description: NinjaOne Public API documentation.
  contact:
    email: api@ninjarmm.com
  version: 2.0.9-draft
servers:
- url: https://app.ninjarmm.com/v2
  description: Base URL declared by the provider in apis.yml (roadmap#122).
security:
- oauth2:
  - monitoring
  - management
  - control
- sessionKey:
  - monitoring
  - management
  - control
tags:
- name: ticketing
  description: ticketing
paths:
  /v2/ticketing/ticket:
    post:
      tags:
      - ticketing
      summary: Create ticket
      description: Create a new ticket, does not accept files
      operationId: create
      requestBody:
        description: NewTicket object that needs to be added to the store
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewTicket'
        required: true
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketDTO'
  /v2/ticketing/ticket/{ticketId}/comment:
    post:
      tags:
      - ticketing
      summary: Add comment to ticket
      description: Add a new comment to a ticket, allows files
      operationId: createComment
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                comment:
                  $ref: '#/components/schemas/NewTicketLogEntry'
                files:
                  type: array
                  items:
                    type:
                    - string
                    - 'null'
                    format: binary
      responses:
        default:
          description: default response
          content:
            application/json: {}
  /v2/ticketing/ticket/{ticketId}:
    get:
      tags:
      - ticketing
      summary: Ticket
      description: Returns a ticket
      operationId: getTicketById
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketDTO'
    put:
      tags:
      - ticketing
      summary: Update ticket
      description: Change ticket fields. Does not accept comments
      operationId: update
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        description: UpdateTicket object that needs to be updated to the store
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTicket'
        required: true
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketDTO'
  /v2/ticketing/ticket/{ticketId}/log-entry:
    get:
      tags:
      - ticketing
      summary: List ticket log entries
      description: Returns list of the ticket log entries for a ticket
      operationId: getTicketLogEntriesByTicketId
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: type
        in: query
        schema:
          type: string
          enum:
          - DESCRIPTION
          - COMMENT
          - CONDITION
          - SAVE
          - DELETE
          - PRODUCT
      - name: createTime
        in: query
        schema:
          type: string
      - name: anchorId
        in: query
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        schema:
          type: integer
          format: int32
          default: 500
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TicketLogEntryPublicApiDTO'
  /v2/ticketing/attributes:
    get:
      tags:
      - ticketing
      summary: List ticket attributes
      description: Returns list of the ticket attributes
      operationId: getTicketAttributes
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TicketingAttributePublicApiDTO'
  /v2/ticketing/contact/contacts:
    get:
      tags:
      - ticketing
      summary: List contacts
      description: Returns list of contacts
      operationId: getContacts_1
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ContactResponseDTO'
  /v2/ticketing/ticket-form/{id}:
    get:
      tags:
      - ticketing
      summary: Ticket form
      description: 'Returns a ticket form with fields '
      operationId: getTicketFormById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketFormPublicApiDTO'
  /v2/ticketing/ticket-form:
    get:
      tags:
      - ticketing
      summary: List ticket forms
      description: Returns list of ticket forms with their fields
      operationId: getTicketForms
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TicketFormPublicApiDTO'
  /v2/ticketing/statuses:
    get:
      tags:
      - ticketing
      summary: Get list of ticket status
      description: 'Get list of ticket status '
      operationId: getAllStatuses
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TicketStatusPublicApiDTO'
  /v2/ticketing/trigger/boards:
    get:
      tags:
      - ticketing
      summary: List boards
      description: Returns list of ticketing boards
      operationId: getBoards
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TicketingBoardPublicApiDTO'
  /v2/ticketing/trigger/board/{boardId}/run:
    post:
      tags:
      - ticketing
      summary: List of tickets for board
      description: Run a board. Returns list of tickets matching the board condition and filters. Allows pagination
      operationId: getTicketsByBoard
      parameters:
      - name: boardId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TicketBoardScrollingRequestDTO'
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketDashboardPublicApiDTO'
  /v2/ticketing/app-user-contact:
    get:
      tags:
      - ticketing
      summary: List of users by user type
      description: Returns list of users (contacts, end-user, technician)
      operationId: getAllUserAndContacts
      parameters:
      - name: pageSize
        in: query
        description: Limit number of records per page
        schema:
          type: integer
          format: int32
          default: 50
      - name: anchorNaturalId
        in: query
        description: Last User Identifier from previous page
        schema:
          type: integer
          format: int32
          default: 0
      - name: searchCriteria
        in: query
        description: Search by first name, last name or email address
        schema:
          type: string
      - name: userType
        in: query
        description: User Type
        schema:
          type: string
          enum:
          - TECHNICIAN
          - END_USER
          - CONTACT
      - name: clientId
        in: query
        description: Organization identifier
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Returns a list of all users and contacts
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AppUserAndContactPublicApiDTO'
components:
  schemas:
    TicketBoardScrollingRequestDTO:
      type: object
      properties:
        sortBy:
          type: array
          items:
            $ref: '#/components/schemas/SortBy'
        filters:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/Rule'
        pageSize:
          type: integer
          format: int32
        searchCriteria:
          maxLength: 512
          minLength: 0
          type: string
        includeColumns:
          uniqueItems: true
          type: array
          items:
            type: string
        lastCursorId:
          type: integer
          format: int32
    TicketStatusPublicApiDTO:
      type: object
      properties:
        name:
          type: string
        displayName:
          type: string
        parentId:
          type: integer
          format: int32
        statusId:
          type: integer
          format: int32
    Condition:
      type: object
      properties:
        any:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/Rule'
        all:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/Rule'
    AttributeContent:
      type: object
      properties:
        customizeForEndUser:
          type: boolean
        endUserCustomization:
          $ref: '#/components/schemas/EndUserCustomization'
        values:
          type: array
          items:
            $ref: '#/components/schemas/AttributeContentValue'
        required:
          type: boolean
        footerText:
          type: string
        tooltipText:
          type: string
        advancedSettings:
          $ref: '#/components/schemas/AttributeContentAdvancedSettings'
    TicketDashboardPublicApiDTO:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            additionalProperties:
              type: object
        metadata:
          $ref: '#/components/schemas/TicketMetadata'
    TicketFormContent:
      type: object
      properties:
        fields:
          type: array
          items:
            type: integer
            format: int32
        timerSettings:
          $ref: '#/components/schemas/TimerSettings'
    AttributeContentAdvancedSettings:
      type: object
      properties:
        fileMaxSize:
          type: integer
          format: int32
        fileExtensions:
          type: array
          items:
            type: string
        dateFilters:
          $ref: '#/components/schemas/AttributeContentAdvancedSettingsDateFilters'
        maxCharacters:
          type: integer
          format: int32
        complexityRules:
          $ref: '#/components/schemas/AttributeContentAdvancedSettingsComplexityRules'
        numericRange:
          $ref: '#/components/schemas/AttributeContentAdvancedSettingsNumericRange'
        org:
          uniqueItems: true
          type: array
          items:
            type: integer
            format: int32
        nodeClass:
          uniqueItems: true
          type: array
          items:
            type: string
            enum:
            - WINDOWS_SERVER
            - WINDOWS_WORKSTATION
            - LINUX_WORKSTATION
            - MAC
            - ANDROID
            - APPLE_IOS
            - APPLE_IPADOS
            - VMWARE_VM_HOST
            - VMWARE_VM_GUEST
            - HYPERV_VMM_HOST
            - HYPERV_VMM_GUEST
            - LINUX_SERVER
            - MAC_SERVER
            - CLOUD_MONITOR_TARGET
            - NMS_SWITCH
            - NMS_ROUTER
            - NMS_FIREWALL
            - NMS_PRIVATE_NETWORK_GATEWAY
            - NMS_PRINTER
            - NMS_SCANNER
            - NMS_DIAL_MANAGER
            - NMS_WAP
            - NMS_IPSLA
            - NMS_COMPUTER
            - NMS_VM_HOST
            - NMS_APPLIANCE
            - NMS_OTHER
            - NMS_SERVER
            - NMS_PHONE
            - NMS_VIRTUAL_MACHINE
            - NMS_NETWORK_MANAGEMENT_AGENT
            - UNMANAGED_DEVICE
            - MANAGED_DEVICE
        ipAddressType:
          type: string
          enum:
          - ALL
          - IPV4
          - IPV6
        expandLargeValueOnRender:
          type: boolean
    AppUserAndContactPublicApiDTO:
      type: object
      properties:
        uid:
          type: string
          description: Global identifier for the user
          format: uuid
        id:
          type: integer
          description: User identifier
          format: int32
        clientId:
          type: integer
          description: Client identifier
          format: int32
        firstName:
          type: string
          description: The user's first name
        lastName:
          type: string
          description: The user's last name
        email:
          type: string
          description: The user's email address
        userType:
          type: string
          description: System User Type
          enum:
          - TECHNICIAN
          - END_USER
          - CONTACT
        naturalId:
          type: string
          description: Last User Identifier
    Rule:
      type: object
      properties:
        field:
          type: string
        operator:
          type: string
        value:
          type: string
    TicketingBoardPublicApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int32
        uid:
          type: string
          format: uuid
        name:
          type: string
        description:
          type: string
        conditions:
          $ref: '#/components/schemas/Condition'
        createTime:
          type: number
          format: double
        updateTime:
          type: number
          format: double
        system:
          type: boolean
        columns:
          uniqueItems: true
          type: array
          items:
            type: string
        sortBy:
          uniqueItems: true
          type: array
          items:
            type: object
            additionalProperties:
              type: object
        ticketCount:
          type: integer
          format: int32
    TicketLogEntryAutomationDTO:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
        system:
          type: boolean
        type:
          type: string
    UpdateTicket:
      required:
      - clientId
      - requesterUid
      - status
      - subject
      - ticketFormId
      - version
      type: object
      properties:
        version:
          type: integer
          description: ticket version
          format: int32
          example: 1
        clientId:
          type: integer
          description: Client (Organization) identifier
          format: int32
          example: 1
        ticketFormId:
          type: integer
          description: Ticket form identifier
          format: int32
          example: 1
        locationId:
          type:
          - integer
          - 'null'
          description: Location identifier
          format: int32
          example: 1
        nodeId:
          type:
          - integer
          - 'null'
          description: Device identifier
          format: int32
          example: 1
        subject:
          maxLength: 200
          minLength: 0
          type: string
          example: CPU with problems
        status:
          type: string
          default: '1000'
        type:
          type:
          - string
          - 'null'
          description: Type of ticket
          example: PROBLEM
          enum:
          - PROBLEM
          - QUESTION
          - INCIDENT
          - TASK
        cc:
          $ref: '#/components/schemas/CarbonCopy'
        assignedAppUserId:
          type:
          - integer
          - 'null'
          format: int32
        requesterUid:
          type: string
          format: uuid
        severity:
          type:
          - string
          - 'null'
          default: NONE
          enum:
          - NONE
          - MINOR
          - MODERATE
          - MAJOR
          - CRITICAL
        priority:
          type:
          - string
          - 'null'
          default: NONE
          enum:
          - NONE
          - LOW
          - MEDIUM
          - HIGH
        parentTicketId:
          type:
          - integer
          - 'null'
          description: Ticket parent identifier
          format: int32
          example: 1
        tags:
          type:
          - array
          - 'null'
          example:
          - tag1
          - tag2
          items:
            type:
            - string
            - 'null'
            example: '["tag1","tag2"]'
        attributes:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/TicketingAttributeValue'
        additionalAssignedTechnicianIds:
          uniqueItems: true
          type:
          - array
          - 'null'
          description: Additional assigned technician identifiers
          example:
          - 300
          - 789
          items:
            type:
            - integer
            - 'null'
            description: Additional assigned technician identifiers
            format: int32
    ContactResponseDTO:
      type: object
      properties:
        id:
          type: integer
          format: int32
        clientId:
          type: integer
          format: int32
        clientName:
          type: string
        uid:
          type: string
          format: uuid
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        phone:
          type: string
        jobTitle:
          type: string
        displayName:
          type: string
        createTime:
          type: number
          format: double
        updateTime:
          type: number
          format: double
    NewTicket:
      required:
      - clientId
      - status
      - subject
      - ticketFormId
      type: object
      properties:
        clientId:
          type: integer
          description: Client (Organization) identifier
          format: int32
          example: 1
        ticketFormId:
          type: integer
          description: Ticket form identifier
          format: int32
          example: 1
        locationId:
          type:
          - integer
          - 'null'
          description: Location identifier
          format: int32
          example: 1
        nodeId:
          type:
          - integer
          - 'null'
          description: Device identifier
          format: int32
          example: 1
        subject:
          maxLength: 200
          minLength: 0
          type: string
          example: CPU with problems
        description:
          $ref: '#/components/schemas/NewTicketLogEntry'
        status:
          type: string
          default: '1000'
        type:
          type:
          - string
          - 'null'
          description: Type of ticket
          example: PROBLEM
          enum:
          - PROBLEM
          - QUESTION
          - INCIDENT
          - TASK
        cc:
          $ref: '#/components/schemas/CarbonCopy'
        assignedAppUserId:
          type:
          - integer
          - 'null'
          format: int32
        requesterUid:
          type: string
          format: uuid
        severity:
          type:
          - string
          - 'null'
          default: NONE
          enum:
          - NONE
          - MINOR
          - MODERATE
          - MAJOR
          - CRITICAL
        priority:
          type:
          - string
          - 'null'
          default: NONE
          enum:
          - NONE
          - LOW
          - MEDIUM
          - HIGH
        parentTicketId:
          type:
          - integer
          - 'null'
          description: Ticket parent identifier
          format: int32
          example: 1
        tags:
          type:
          - array
          - 'null'
          example:
          - tag1
          - tag2
          items:
            type:
            - string
            - 'null'
            example: '["tag1","tag2"]'
        attributes:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/TicketingAttributeValue'
        additionalAssignedTechnicianIds:
          uniqueItems: true
          type:
          - array
          - 'null'
          description: Additional assigned technician identifiers
          example:
          - 300
          - 789
          items:
            type:
            - integer
            - 'null'
            description: Additional assigned technician identifiers
            format: int32
    TicketingAttributePublicApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int32
        attributeType:
          type: string
        name:
          type: string
        description:
          type: string
        customizeForEndUser:
          type: boolean
        nameForEndUser:
          type: string
        descriptionForEndUser:
          type: string
        endUserOption:
          type: string
        technicianOption:
          type: string
        content:
          $ref: '#/components/schemas/AttributeContent'
        system:
          type: boolean
        active:
          type: boolean
        createTime:
          type: number
          format: double
        updateTime:
          type: number
          format: double
    AgreementDTO:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
    TicketLogEntryPublicApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int32
        appUserContactUid:
          type: string
          format: uuid
        appUserContactId:
          type: integer
          format: int32
        appUserContactType:
          type: string
          enum:
          - TECHNICIAN
          - END_USER
          - CONTACT
        type:
          type: string
          enum:
          - DESCRIPTION
          - COMMENT
          - CONDITION
          - SAVE
          - DELETE
          - PRODUCT
        body:
          type: string
        htmlBody:
          type: string
        fullEmailBody:
          type: string
        publicEntry:
          type: boolean
        system:
          type: boolean
        createTime:
          type: number
          format: double
        changeDiff:
          type: object
        activityId:
          type: integer
          format: int64
        timeTracked:
          type: integer
          format: int32
        technicianTagged:
          type: array
          items:
            type: integer
            format: int32
        techniciansTaggedMetadata:
          type: array
          items:
            $ref: '#/components/schemas/TechniciansTaggedMetadataDTO'
        automation:
          $ref: '#/components/schemas/TicketLogEntryAutomationDTO'
        blockedByInvoice:
          type: boolean
        ticketTimeEntry:
          $ref: '#/components/schemas/TicketTimeEntryDTO'
        emailResponse:
          type: boolean
    TechniciansTaggedMetadataDTO:
      type: object
      properties:
        id:
          type: integer
          format: int32
        email:
          type: string
        displayName:
          type: string
        deleted:
          type: boolean
        permitted:
          type: boolean
    AttributeContentAdvancedSettingsDateFilters:
      type: object
      properties:
        type:
          type: string
          enum:
          - NONE
          - INCLUDE
          - EXCLUDE
          - PAST_DATES_ONLY
          - FUTURE_DATES_ONLY
          - RANGE
        selected:
          type: array
          items:
            type: string
    AttributeContentValue:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        active:
          type: boolean
        system:
          type: boolean
    CarbonCopy:
      type:
      - object
      - 'null'
      properties:
        uids:
          uniqueItems: true
          type:
          - array
          - 'null'
          description: List of user uids to be carbon-copied
          example:
          - 1fa74a18-a329-40d8-b5b7-0a22624f7800
          - b0558cb6-3c4e-438c-b8fd-5247c648bbbe
          items:
            type:
            - string
            - 'null'
            description: List of user uids to be carbon-copied
            format: uuid
        emails:
          uniqueItems: true
          type:
          - array
          - 'null'
          description: emails
          example:
          - example1@example.com
          - example2@example.com
          items:
            type:
            - string
            - 'null'
            description: emails
            example: '["example1@example.com","example2@example.com"]'
    TicketingAttributeValue:
      required:
      - attributeId
      - value
      type:
      - object
      - 'null'
      properties:
        id:
          type:
          - integer
          - 'null'
          format: int32
          example: 1
        attributeId:
          type: integer
          description: Attribute identifier
          format: int32
          example: 1
        value:
          type: string
          description: Attribute value
    CcList:
      type: object
      properties:
        uids:
          uniqueItems: true
          type: array
          items:
            type: string
            format: uuid
        emails:
          uniqueItems: true
          type: array
          items:
            type: string
    TicketMetadata:
      type: object
      properties:
        columns:
          uniqueItems: true
          type: array
          items:
            type: string
        sortBy:
          type: array
          items:
            $ref: '#/components/schemas/SortBy'
        attributes:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AttributeData'
        filters:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/Rule'
        allRequiredColumns:
          uniqueItems: true
          type: array
          items:
            type: string
        allColumns:
          uniqueItems: true
          type: array
          items:
            type: string
        columnNamesForExporting:
          uniqueItems: true
          type: array
          items:
            type: string
    SortBy:
      type: object
      properties:
        field:
          type: string
        direction:
          type: string
          enum:
          - ASC
          - DESC
    AgreementProductTimeEntryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
    EndUserCustomization:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        label:
          type: string
    TicketFormPublicApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
        description:
          type: string
        endUserTitle:
          type: string
        content:
          $ref: '#/components/schemas/TicketFormContent'
        active:
          type: boolean
        createTime:
          type: number
          format: double
        updateTime:
          type: number
          format: double
        fields:
          type: array
          items:
            $ref: '#/components/schemas/TicketingAttributePublicApiDTO'
        default:
          type: boolean
    AttributeContentAdvancedSettingsNumericRange:
      type: object
      properties:
        min:
          type: number
        max:
          type: number
    NewTicketLogEntry:
      required:
      - public
      type: object
      properties:
        public:
          type: boolean
          default: true
        body:
          type:
          - string
          - 'null'
          example: new comment
        htmlBody:
          type:
          - string
          - 'null'
          example: <p>new comment</p>
        timeTracked:
          type:
          - integer
          - 'null'
          description: time in seconds
          format: int32
          example: 60
        duplicateInIncidents:
          type: boolean
    TicketDTO:
      type: object
      properties:
        id:
          type: integer
          format: int32
        version:
          type: integer
          format: int32
        nodeId:
          type: integer
          format: int32
        clientId:
          type: integer
          format: int32
        locationId:
          type: integer
          format: int32
        assignedAppUserId:
          type: integer
          format: int32
        requesterUid:
          type: string
          format: uuid
        subject:
          type: string
        status:
          $ref: '#/components/schemas/TicketStatusPublicApiDTO'
        type:
          type: string
          enum:
          - PROBLEM
          - QUESTION
          - INCIDENT
          - TASK
        priority:
          type: string
          enum:
          - NONE
          - LOW
          - MEDIUM
          - HIGH
        severity:
          type: string
          enum:
          - NONE
          - MINOR
          - MODERATE
          - MAJOR
          - CRITICAL
        ticketFormId:
          type: integer
          format: int32
        source:
          type: string
          enum:
          - TECHNICIAN
          - EMAIL
          - WEB_FORM
          - HELP_REQUEST
          - END_USER
          - CONDITION
          - SCHEDULED_SCRIPT
          - ACTIVITY
        tags:
          type: array
          items:
            type: string
        ccList:
          $ref: '#/components/schemas/CcList'
        createTime:
          type: number
          format: double
        deleted:
          type: boolean
        attributeValues:
          type: array
          items:
            $ref: '#/components/schemas/AttributeValueDTO'
        additionalAssignedTechnicianIds:
          uniqueItems: true
          type: array
          items:
            type: integer
            format: int32
    TicketTimeEntryDTO:
      type: object
      properties:
        ticketLogEntryId:
          type: integer
          format: int32
        invoiceId:
          type: integer
          format: int32
        startDate:
          type: integer
          format: int64
        remote:
          type: boolean
        billing:
          type: string
          enum:
          - BILLABLE
          - NOT_BILLABLE
          - NO_CHARGE
        billingStatus:
          type: string
          enum:
          - BILLED
          - PENDING
          - NOT_BILLABLE
        agreementOriginType:
     

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