---
title: "Update a ticket"
method: PATCH
path: "/api/v1/tickets/{ticket_id}"
tags: ["tickets"]
---

# Update a ticket

`PATCH /api/v1/tickets/{ticket_id}`

Updates an existing ticket with the provided fields

## Path parameters

- `ticket_id` string, required

## Request body

- UpdateTicketRequest
  - `title` string, nullable
  - `description` string, nullable
  - `ticket_type` 'request' | 'incident' | 'question'
  - `priority` 'low' | 'medium' | 'high' | 'urgent'
  - `status` 'open' | 'in_progress' | 'pending' | 'pending_reporter' | 'pending_approval' | 'pending_internal_team' | 'pending_third_party' | 'resolved' | 'closed' | 'canceled'
  - `assignee` string, nullable — assignee, to unassign pass in `_UNASSIGN_`
  - `desk_id` string, nullable
  - `subdesk_id` string, nullable — Subdesk ID to move ticket to (must be in same desk)
  - `notification_reply_id` string, nullable
  - `custom_fields` object, nullable — Custom field values for the current or new desk
  - `ticket_metadata` object, nullable — Additional metadata for the ticket
  - `attachment_ids` string[], nullable — List of attachment IDs to link to this ticket
  - `created_at` string, date-time, nullable — Optional creation timestamp override. Used for backfilling original ITSM timestamps during re-evaluation.
  - `response_sla_deadline` string, date-time, nullable
  - `response_sla_completed_at` string, date-time, nullable
  - `resolution_sla_deadline` string, date-time, nullable
  - `resolution_sla_completed_at` string, date-time, nullable
  - `publish_events` boolean — Whether to publish domain events for this ticket update. Set to False to suppress event publishing (useful for bulk imports or migrations). Defaults to True. This suppresses ALL events including status changes, assignee changes, and survey triggers.

## Response `200`

Successful Response

- TicketResponse
  - `id` string, required
  - `title` string, required
  - `description` string, nullable
  - `ticket_type` 'request' | 'incident' | 'question', required
  - `priority` 'low' | 'medium' | 'high' | 'urgent', required
  - `source` 'slack' | 'harmony' | 'teams' | 'freshservice' | 'jsm' | 'solarwinds' | 'email' | 'siit', required
  - `status` 'open' | 'in_progress' | 'pending' | 'pending_reporter' | 'pending_approval' | 'pending_internal_team' | 'pending_third_party' | 'resolved' | 'closed' | 'canceled', required
  - `reporter` string, required
  - `created_by` string, required
  - `assignee` string, nullable
  - `desk_id` string, required
  - `subdesk_id` string, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `custom_fields` object, nullable, required — Custom field values for the current desk
  - `ticket_metadata` object, nullable — Additional metadata for the ticket
  - `kb_resolution` KBResolutionResponse — Knowledge base resolution suggestion for a ticket.
    - `answer_summary` string, required — 2-3 sentence summary of the suggested resolution
    - `sources` KBSourceResponse[] — Source citations for the resolution
      - `url` string, required — URL of the source document
      - `title` string, nullable — Title of the source document
    - `chunks_count` integer, required — Number of KB chunks used to generate the resolution
    - `confidence` number, nullable — Confidence score for the KB answer (0.0-1.0)
    - `queried_at` string, date-time, required — Timestamp when the KB was queried
  - `workflows` WorkflowMetadata[] — Workflows that match this ticket
    - `workflow_id` string, required — Workflow instance ID
    - `name` string, required — Workflow name
    - `description` string, nullable — Workflow description
    - `workflow_target` string, nullable — Workflow template ID (e.g., 'app-access', 'idp-password-reset')
  - `tags` TagResponse[]
    - `id` integer, required
    - `desk_id` string, required
    - `name` string, required
    - `color` string, nullable
    - `description` string, nullable
    - `system_tag` boolean, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `related_asset_ids` string[], nullable — List of asset IDs (UUIDs) associated with this ticket
  - `thread_id` string, uuid, nullable — Thread ID for the ticket conversation
  - `response_sla_deadline` string, date-time, nullable
  - `response_sla_completed_at` string, date-time, nullable
  - `resolution_sla_deadline` string, date-time, nullable
  - `resolution_sla_completed_at` string, date-time, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/harmony/apis/service-desk.md) · [All operations](https://skmtc.net/harmony/apis/service-desk/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/harmony/service-desk/revisions/abcdc6e980f3/schema)
