---
title: "Create a new ticket"
url: https://docs.gleap.ai/en/reference/rest-api/create-ticket
method: POST
path: "/tickets"
api: "API Reference"
tag: "Ticket"
operationId: "CreateTicket"
updatedAt: "2026-11-01T18:40:15.677Z"
language: en
---

# Create a new ticket

`POST https://api.gleap.io/v3/tickets`

Create a new ticket in a project. Every field is optional. Common fields include: `title`, `description`, `type` (BUG, FEATURE\_REQUEST, etc.), `status`, `priority`, `session` (contact/session ID if manually added), and `customData` (custom fields). Use `linkedTickets` to reference existing tickets. `sourceTicketId` creates the ticket from another one (e.g. a bug from a conversation): it takes that ticket's contact and company unless `session` is set, and links both tickets. `priority` is a priority key of the ticket's board (LOW, MEDIUM, HIGH or a custom key) or its title; an unknown value falls back to the board's default priority. GET /projects/ticket-types lists each board's priorities.

## Authorization

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

## 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)
- `consoleLog` (any)
- `customEventLog` (any)
- `networkLogs` (any)
- `isManualStart` (boolean)
- `botId` (string)
- `preventAutoReply` (boolean)
- `skipDuplicateCheck` (boolean): FEATURE\_REQUEST creates run a duplicate guard (409 with the existing request's payload). Pass true to opt out deliberately (e.g. a human already reviewed the suggestions).
- `sourceTicketId` (string): Create this ticket from another ticket of the project, e.g. a bug from a customer conversation. Without a `session` the new ticket gets the source ticket's contact, and with it the company. Both tickets are linked. An unknown id, or one of another project, is a 404.
- `createdAt` (string): Importing from another helpdesk: the ticket's original creation date (ISO 8601). A date in the past dates the ticket (sorting, reports, retention) and stores it as history: it is read, and no notification, webhook, workflow, SLA or AI agent runs on it. A future date or "now" is ignored.
- `pipelineEntry` (string[]): CRM pipeline entries to link this ticket to. Verified against the project in createTicket — foreign or unknown ids are dropped, never an error. A ticket may sit on several entries at once (one shared task blocking several deals).
- `surveyResponse` (string): Surveys 2.0 response (`rsp_…`) this ticket follows up on. Verified against the project in createTicket — an unknown id is dropped, never an error; a known one is linked both ways, like a reach-out conversation.

## Example request

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

## Responses

### 200 (`application/json`)

Ok

```json
{
  "_id": "507f1f77bcf86cd799439011",
  "id": "507f1f77bcf86cd799439011",
  "bugId": 42,
  "title": "Login button not working",
  "description": "Users cannot log in when clicking the login button",
  "type": "BUG",
  "status": "OPEN",
  "priority": "HIGH",
  "archived": false,
  "isSpam": false,
  "shareToken": "ubjvxvxpuvz7d9zwqyi9v4jekjif5skn",
  "project": "507f1f77bcf86cd799439010",
  "session": "507f1f77bcf86cd799439013",
  "customData": {
    "browser": "Chrome",
    "version": "120.0.0.0"
  },
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-15T10:30:00.000Z"
}
```
