Create a ticket
Creates a new ticket.
Required Fields
| Field | Type | Description |
|---|---|---|
ticketCategoryId | string | Ticket category ID |
title | string | Ticket title (min 2 characters) |
author | object | Author/contact info (id, userId, email, name, profilePicture) |
Optional Fields
| Field | Type | Description |
|---|---|---|
content | string | Ticket description (HTML) |
customFields | object | Custom field values |
companyId | string | Company to associate |
linkedConversationId | string | Conversation to link |
assigneeId | string | Admin to assign |
statusId | string | Initial status |
createdAt | string | ISO 8601 timestamp for backdating |
skipNotifications | boolean | Skip sending notifications (default false) |
File Custom Fields
File-type custom fields can be provided in two ways:
Method 1: Multipart upload — Send the request as multipart/form-data. Put the JSON body in a field named data, and attach files with field names like customFields.<fieldId>. For allowMultiple fields, send multiple files with the same field name.
Method 2: External URL — In the JSON body, set the file custom field value to { "url": "https://..." }. Optionally include "name" to set the filename (e.g. { "url": "https://...", "name": "report.pdf" }); if omitted, the filename is extracted from the download response. For allowMultiple fields, use an array: [{ "url": "..." }, ...]. The server downloads the file (max 10MB, HTTPS only) and stores it.
Both methods produce signed download URLs in the response.
Limits: Max 10 files per request, 400MB total upload size. Executable file types (.exe, .bat, .js, .sh, etc.) are blocked.
Response format: File custom field values in the response are JSON strings containing { "key": "...", "name": "...", "url": "https://signed-url..." }. For allowMultiple fields, an array of these objects. The url is a time-limited signed download URL (expires in 1 hour).
Response
Returns the created ticket object with 201 Created status.
Body
Author to attribute the post to. If not provided, uses the authenticated user — unless source is given, in which case a guest author is synthesised from source.label (or the channel name), because a relayed request belongs to the customer who said it. Supports multiple identification methods: id (Featurebase ID), userId (external SSO ID), or email.
Response
Created
Ticket category type
customer, tracker, back-officecustomerTicket content/description (HTML)
<p>I get a 403 error when logging in.</p>Conversation message history. Only included when fetching a single ticket by ID.
Custom field values keyed by field ID. File-type fields contain a JSON string of { key, name, url } with a signed download URL (1 hour expiry). For allowMultiple file fields, the value is a JSON string of an array of these objects.
ISO 8601 timestamp until snoozed (from linked conversation)
2025-01-16T09:00:00.000ZAssigned team ID (from linked conversation)
507f1f77bcf86cd799439014Full URL to view the ticket
https://feedback.example.com/p/cannot-loginMore in Tickets
PATCHUpdate a ticketDELDelete a ticketPOSTReply to a ticketGETList custom fieldsStill need help? Ask the team