Skip to main content
POST
Create a ticket

Authorizations

Authorization
string
header
required

API key from your account settings

Path Parameters

agentId
string
required

The agent ID

Minimum string length: 1
Example:

"5QHA6VB-DIAbBhxwqxfdi"

Body

application/json
subject
string
required

Ticket subject (1-500 characters)

Required string length: 1 - 500
Example:

"Export failing with 500"

description
string
required

The first message body, written as a reply authored by the customer (1-10,000 characters)

Required string length: 1 - 10000
Example:

"Customer cannot export orders."

customer
object
required
statusId
string<uuid>

ID of an existing status for this agent. Provide at most one of statusId / statusCategory.

statusCategory
enum<string>

Status category; resolves to that category's default status. Provide at most one of statusId / statusCategory. Defaults to the "new" category default when neither is provided.

Available options:
new,
on_you,
on_customer,
on_hold,
closed,
cancelled
Example:

"new"

assigneeId
string<uuid> | null

Platform user id of the agent to assign. Provide at most one of assigneeId / assigneeEmail. Pass null to explicitly create the ticket unassigned (suppresses auto-assignment); omit to let auto-assignment apply.

assigneeEmail
string<email>

Email of the agent to assign (case-insensitive). Provide at most one of assigneeId / assigneeEmail.

Example:

"sam@example.com"

teamId
string<uuid>

ID of an existing team for this agent. When provided without any assignee field, an agent is picked within this team using the team's own assignment strategy, and routing rules are skipped. When provided together with assigneeId/assigneeEmail, including assigneeId: null, no auto-assignment runs and the team is written as given.

Response

The created ticket

ticketNumber
integer
required

The ticket number

Example:

123

subject
string | null
required

Ticket subject

description
string | null
required

Ticket description

statusCategory
enum<string>
required

Status category driving color/ordering semantics

Available options:
new,
on_you,
on_customer,
on_hold,
closed,
cancelled
Example:

"on_customer"

statusId
string
required

ID of the ticket status. Resolve label/color via /ticket-statuses.

assigneeId
string | null
required

ID of the assigned agent user, or null when unassigned

customer
object
required
metadata
object
required

Arbitrary extra fields captured on the ticket

Example:
channel
enum<string>
required

Channel the ticket originated from

Available options:
helpdesk,
iframe,
email,
whatsapp,
api,
messenger,
instagram,
center_stage,
phone
Example:

"email"

conversationId
string | null
required

ID of the linked conversation, if any

teamId
string | null
required

ID of the assigned team, or null. Resolve via /teams.

createdAt
string
required

ISO 8601 creation timestamp

Example:

"2026-07-20T12:34:56.000Z"

updatedAt
string
required

ISO 8601 timestamp of the last update

Example:

"2026-07-21T09:00:00.000Z"

lastMessageAt
string | null
required

ISO 8601 timestamp of the most recent message, or null if the ticket has no messages

Example:

"2026-07-21T08:55:00.000Z"