---
title: "List my Kai Copilot drafts on a ticket"
url: https://docs.gleap.ai/en/reference/rest-api/get-copilot-drafts
method: GET
path: "/hard-tickets/tickets/{ticketId}/copilot-drafts"
api: "API Reference"
tag: "HardTickets"
operationId: "GetCopilotDrafts"
updatedAt: "2026-11-10T09:30:00.823Z"
language: en
---

# List my Kai Copilot drafts on a ticket

`GET https://api.gleap.io/v3/hard-tickets/tickets/{ticketId}/copilot-drafts`

The viewer's own Kai Copilot drafts on a ticket, newest first: each draft's words and where it is now (open on the card, sent, replaced by a newer draft, not sent). The pane thread matches them to Copilot's proposals.

## Authorization

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

## Path parameters

- `ticketId` (string, required)

## Headers

- `project` (string, required)

## Example request

```bash
curl --request GET \
  --url 'https://api.gleap.io/v3/hard-tickets/tickets/{ticketId}/copilot-drafts' \
  --header 'Authorization: Bearer <token>' \
  --header 'project: <project>'
```

## Responses

### 200 (`application/json`)

Ok

- `drafts` (object[], required)
  - `taskId` (string, required)
  - `text` (string, required): The draft as proposed (Markdown).
  - `status` (enum<string>, required): Where a draft Kai Copilot proposed is now (the strings the pane reads). One of: `open`, `sent`, `replaced`, `not_sent`.
  - `createdAt` (string | null, required)

```json
{
  "drafts": [
    {
      "taskId": "string",
      "text": "string",
      "status": "open",
      "createdAt": "string"
    }
  ]
}
```
