Spiceworks Tickets API

Help Desk ticket management operations for creating, reading, updating, and listing support tickets within the Spiceworks IT management platform

OpenAPI Specification

spiceworks-tickets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Spiceworks Cloud Apps Comments Tickets API
  description: The Spiceworks Cloud Apps API provides a JavaScript SDK for building integrated applications within the Spiceworks IT management platform. The API exposes Help Desk ticketing data, device inventory, and user information to embedded cloud apps. Applications are embedded within the Spiceworks UI and communicate with the platform through the spiceworks-sdk JavaScript library using a postMessage-based bridge. The API uses OAuth 2.0 authentication and provides access to tickets, comments, devices, and user profiles for IT professionals and app developers.
  version: '1.0'
  contact:
    name: Spiceworks Developer Community
    url: https://community.spiceworks.com/
  termsOfService: https://community.spiceworks.com/legal/terms
servers:
- url: https://community.spiceworks.com
  description: Spiceworks Community Platform
security:
- oauth2:
  - helpdesk
  - inventory
  - users
tags:
- name: Tickets
  description: Help Desk ticket management operations for creating, reading, updating, and listing support tickets within the Spiceworks IT management platform
paths:
  /api/v1/tickets:
    get:
      operationId: listTickets
      summary: List Help Desk Tickets
      description: Retrieves a paginated list of Help Desk tickets from the Spiceworks platform. Results can be filtered by status, assignee, and other ticket attributes. Returns ticket summaries including ID, summary, status, priority, assignee, and timestamps.
      tags:
      - Tickets
      parameters:
      - name: status
        in: query
        description: Filter tickets by status
        schema:
          type: string
          enum:
          - open
          - closed
          - in_progress
      - name: assigned_to
        in: query
        description: Filter by assigned technician ID
        schema:
          type: integer
      - name: page
        in: query
        description: Page number for pagination
        schema:
          type: integer
          default: 1
      - name: per_page
        in: query
        description: Number of tickets per page
        schema:
          type: integer
          default: 25
          maximum: 100
      responses:
        '200':
          description: List of tickets retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  tickets:
                    type: array
                    items:
                      $ref: '#/components/schemas/Ticket'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
    post:
      operationId: createTicket
      summary: Create Help Desk Ticket
      description: Creates a new Help Desk ticket in the Spiceworks platform. The ticket is associated with the authenticated user's Spiceworks account. Required fields include summary and optionally a description, priority level, and assignee.
      tags:
      - Tickets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TicketCreate'
      responses:
        '201':
          description: Ticket created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  ticket:
                    $ref: '#/components/schemas/Ticket'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/tickets/{id}:
    get:
      operationId: getTicket
      summary: Get Help Desk Ticket
      description: Retrieves the full details of a specific Help Desk ticket by its ID, including summary, description, status, priority, assignee, creator, and all associated comments and attachments.
      tags:
      - Tickets
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the ticket
        schema:
          type: integer
      responses:
        '200':
          description: Ticket details retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  ticket:
                    $ref: '#/components/schemas/TicketDetail'
        '404':
          description: Ticket not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      operationId: updateTicket
      summary: Update Help Desk Ticket
      description: Updates an existing Help Desk ticket. Allows changing status, priority, assignee, summary, description, and other ticket attributes. Only fields included in the request body are updated.
      tags:
      - Tickets
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the ticket
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TicketUpdate'
      responses:
        '200':
          description: Ticket updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  ticket:
                    $ref: '#/components/schemas/Ticket'
        '404':
          description: Ticket not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    TicketDetail:
      allOf:
      - $ref: '#/components/schemas/Ticket'
      - type: object
        properties:
          description:
            type: string
            description: Full description of the ticket issue
          comments:
            type: array
            items:
              $ref: '#/components/schemas/Comment'
          tags:
            type: array
            items:
              type: string
            description: Tags associated with the ticket
    Error:
      type: object
      description: API error response
      properties:
        error:
          type: string
          description: Error message
        details:
          type: array
          items:
            type: string
          description: Additional error details
    Ticket:
      type: object
      description: A Spiceworks Help Desk support ticket
      properties:
        id:
          type: integer
          description: Unique ticket identifier
        summary:
          type: string
          description: Brief description of the ticket issue
        status:
          type: string
          description: Current ticket status
          enum:
          - open
          - in_progress
          - closed
        priority:
          type: string
          description: Ticket priority level
          enum:
          - low
          - medium
          - high
          - urgent
        assignee:
          $ref: '#/components/schemas/UserRef'
        creator:
          $ref: '#/components/schemas/UserRef'
        created_at:
          type: string
          format: date-time
          description: Timestamp when the ticket was created
        updated_at:
          type: string
          format: date-time
          description: Timestamp when the ticket was last updated
        due_date:
          type: string
          format: date
          description: Optional due date for the ticket
    Comment:
      type: object
      description: A comment on a Help Desk ticket
      properties:
        id:
          type: integer
          description: Unique comment identifier
        body:
          type: string
          description: The comment text content
        is_public:
          type: boolean
          description: Whether the comment is visible to the ticket requester (true) or internal to technicians only (false)
        author:
          $ref: '#/components/schemas/UserRef'
        created_at:
          type: string
          format: date-time
          description: Timestamp when the comment was created
    PaginationMeta:
      type: object
      description: Pagination metadata for list responses
      properties:
        current_page:
          type: integer
          description: Current page number
        total_pages:
          type: integer
          description: Total number of pages
        total_count:
          type: integer
          description: Total number of items
        per_page:
          type: integer
          description: Items per page
    TicketUpdate:
      type: object
      properties:
        summary:
          type: string
          description: Updated brief description
          maxLength: 255
        description:
          type: string
          description: Updated detailed description
        status:
          type: string
          enum:
          - open
          - in_progress
          - closed
        priority:
          type: string
          enum:
          - low
          - medium
          - high
          - urgent
        assignee_id:
          type: integer
          description: ID of the technician to assign the ticket to
    TicketCreate:
      type: object
      required:
      - summary
      properties:
        summary:
          type: string
          description: Brief description of the issue
          maxLength: 255
        description:
          type: string
          description: Detailed description of the issue
        priority:
          type: string
          enum:
          - low
          - medium
          - high
          - urgent
          default: medium
        assignee_id:
          type: integer
          description: ID of the technician to assign the ticket to
        due_date:
          type: string
          format: date
          description: Optional due date for resolution
    UserRef:
      type: object
      description: A brief reference to a Spiceworks user
      properties:
        id:
          type: integer
          description: Unique user identifier
        first_name:
          type: string
          description: User first name
        last_name:
          type: string
          description: User last name
        email:
          type: string
          format: email
          description: User email address
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authentication via the Spiceworks Cloud Apps platform. Applications receive an implicit grant token through the JS SDK postMessage bridge when running inside the Spiceworks UI.
      flows:
        implicit:
          authorizationUrl: https://community.spiceworks.com/oauth/authorize
          scopes:
            helpdesk: Access Help Desk tickets and comments
            inventory: Access device inventory data
            users: Access user profile data
externalDocs:
  description: Spiceworks Cloud Apps Developer Documentation
  url: https://spiceworks.github.io/developers.spiceworks.com/documentation/cloud-apps/