---
title: "Update a ticket"
url: https://docs.gleap.ai/en/reference/rest-api/update-ticket
method: PUT
path: "/tickets/{ticketId}"
api: "API Reference"
tag: "Ticket"
operationId: "UpdateTicket"
updatedAt: "2026-11-01T18:40:15.677Z"
language: en
---

# Update a ticket

`PUT https://api.gleap.io/v3/tickets/{ticketId}`

Update a ticket in a project.

## Authorization

- `Authorization` (header, required): `Bearer <token>`

## Path parameters

- `ticketId` (string, required)

## Headers

- `project` (string, required)

## Request body (`application/json`, required)

- `title` (string)
- `conversationClosed` (boolean)
- `bot` (object)
  - `active` (boolean)
  - `currentBot` (string)
  - `currentActionFlow` (string)
  - `currentAction` (number<double>)
  - `forwardedToSupportAt` (string<date-time>)
  - `kaiActive` (boolean)
  - `noAnswerFound` (boolean)
- `content` (any)
- `plainContent` (string)
- `imageUrl` (string)
- `description` (string)
- `latestComment` (string)
- `latestPublicComment` (string)
- `slaBreached` (boolean)
- `hidden` (boolean)
- `needInitialPush` (boolean)
- `noHumanInteraction` (boolean)
- `snoozed` (boolean)
- `snoozedUntil` (string<date-time> | null)
- `processingUser` (string)
- `processingTeam` (string)
- `queued` (boolean)
- `queuedAt` (string<date-time>)
- `mentions` (string[])
- `emailRefs` (any[])
- `attributes` (any)
- `formData` (any)
- `form` (any)
- `aiSummary` (string)
- `aiSupportSummary` (string)
- `dueDate` (string<date-time> | string)
- `linkedTickets` (string[])
- `duplicateOf` (string)
- `duplicatesCount` (number<double>)
- `session` (any)
- `sessions` (any[])
- `outbound` (string)
- `priority` (string): Priority key of the ticket's board: LOW, MEDIUM, HIGH or a custom key; the priority's title is also accepted. Each board's priorities are listed by GET /projects/ticket-types.
- `type` (string)
- `sentiment` (enum<string>): One of: `positive`, `negative`, `neutral`.
- `status` (string)
- `shareToken` (string)
- `secretShareToken` (string)
- `lexorank` (string)
- `bugId` (number<double>)
- `project` (string)
- `organisation` (string)
- `screenshotUrl` (string)
- `screenshotBroke` (string<date-time>)
- `generatingScreenshot` (boolean)
- `screenshotRenderingFailed` (boolean)
- `screenshotLive` (boolean)
- `screenshotDataUrl` (any)
- `isSilent` (boolean)
- `replayDataUrl` (string)
- `replayUrl` (string)
- `generatingReplay` (boolean)
- `replayStartDate` (string<date-time>)
- `replayRenderingStartedAt` (string<date-time>)
- `replayRenderingFailed` (boolean)
- `replayLive` (boolean)
- `originalEmailContent` (string)
- `hasWebReplay` (boolean)
- `integrations` (any)
- `metaData` (any)
- `actionLog` (any)
- `customData` (any)
- `replay` (any)
- `lastResponse` (object)
  - `contact` (string<date-time>)
  - `admin` (string<date-time>)
- `attachments` (object[])
  - `name` (string, required)
  - `url` (string, required)
  - `type` (string)
- `lastNotification` (string<date-time>)
- `faqSuggested` (boolean)
- `notificationsUnread` (boolean)
- `sessionNotificationsUnread` (boolean)
- `hasAgentReply` (boolean)
- `conversationRating` (number<double>)
- `upvotesCount` (number<double>)
- `upvotes` (object[])
  - `email` (string)
- `screenRecordingUrl` (string)
- `firstAssignmentAt` (string<date-time>)
- `archived` (boolean)
- `archivedAt` (string<date-time>)
- `disabled` (boolean)
- `isSpam` (boolean)
- `tags` (string[])
- `score` (number<double>)
- `channel` (object)
  - `id` (string, required)
  - `type` (string)
  - `metaData` (any)
- `manuallyAdded` (boolean)
- `fromData` (any)
- `forceCloseOverride` (boolean)
- `pipelineEntry` (string[]): CRM pipeline entries to link this ticket to, verified against the project in updateTicket (unknown/foreign ids drop the change). The list REPLACES the ticket's links — send `[]` to unlink it from every entry.
- `companyId` (string): The company this conversation is with, by its `companyId`. Changes the ticket only: no contact moves. Must be a company of the project (anything else is ignored); `""` clears it.

## Example request

```bash
curl --request PUT \
  --url 'https://api.gleap.io/v3/tickets/{ticketId}' \
  --header 'Authorization: Bearer <token>' \
  --header 'project: <project>' \
  --header 'Content-Type: application/json' \
  --data '{
  "sentiment": "positive"
}'
```

## Responses

### 200 (`application/json`)

Ok
