Skip to main content
Tickets

Reply to a ticket

Adds a reply to a ticket's linked conversation. Supports both contact and admin replies.

POST
/v2/tickets/{id}/reply

Path Parameters

  • id - The ticket number

Contact Reply

FieldTypeRequiredDescription
typestringYesMust be "contact"
contactIdstringNo*Featurebase contact ID
contactEmailstringNo*Contact email
bodystringYesMessage content (HTML)
messageTypestringNoAlways "comment" for contacts
attachmentUrlsstring[]NoAttachment URLs (max 10)
skipNotificationsbooleanNoSkip notifications (default false)
createdAtstringNoISO 8601 timestamp to backdate the reply

*At least one of contactId or contactEmail is required.

Admin Reply

FieldTypeRequiredDescription
typestringYesMust be "admin"
adminIdstringYesID of the admin authoring the reply
bodystringYesMessage content (HTML)
messageTypestringNo"comment" (default) or "note" for internal notes
attachmentUrlsstring[]NoAttachment URLs (max 10)
skipNotificationsbooleanNoSkip notifications (default false)
createdAtstringNoISO 8601 timestamp to backdate the reply

Response

Returns a reply confirmation object.

Authorizationstringheaderrequired

API key as Bearer token. Use: Authorization: Bearer sk_...

idintegerrequired
Required range: 1 <= x
Featurebase-Versionenum<string>header

API version for this request. Defaults to your organization's configured API version if not specified.

Available options: 2026-08-19.orbit, 2026-01-01.nova, 2025-12-12.clover
Example: 2026-08-19.orbit

Body

application/json

Response

application/json

Success

assigneeIdstring | nullrequired

Assigned admin ID

Example: 507f1f77bcf86cd799439013
authorobject | nullrequired

Contact who created the ticket

categoryTypeenum<string>required

Ticket category type

Available options: customer, tracker, back-office
Example: customer
companyIdstring | nullrequired

Associated company ID

Example: 507f1f77bcf86cd799439015
contentstringrequired

Ticket content/description (HTML)

Example: <p>I get a 403 error when logging in.</p>
conversationPartsobject[]

Conversation message history. Only included when fetching a single ticket by ID.

createdAtstringrequired

ISO 8601 creation timestamp

Example: 2025-01-15T10:30:00.000Z
customFieldsobjectrequired

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.

idstringrequired

Unique identifier (MongoDB ID)

Example: 507f1f77bcf86cd799439011
integrationsobjectrequired

Third-party integration links

linkedConversationsobject[]required

Linked conversations

objectenum<string>required

Object type identifier

Available options: ticket
Example: ticket
openbooleanrequired

Whether the ticket is open

Example: true
snoozedUntilstring | nullrequired

ISO 8601 timestamp until snoozed (from linked conversation)

Example: 2025-01-16T09:00:00.000Z
statusobjectrequired

Current ticket status

teamAssigneeIdstring | nullrequired

Assigned team ID (from linked conversation)

Example: 507f1f77bcf86cd799439014
ticketCategoryIdstringrequired

Ticket category ID

Example: 507f1f77bcf86cd799439011
ticketNumbernumberrequired

Sequential display ID (e.g. TK-42)

Example: 42
ticketUrlstringrequired

Full URL to view the ticket

Example: https://feedback.example.com/p/cannot-login
titlestringrequired

Ticket title

Example: Cannot login to dashboard
updatedAtstringrequired

ISO 8601 last updated timestamp

Example: 2025-01-15T12:30:00.000Z