Update a ticket
PATCH/v2/tickets/{id}
Updates a ticket’s properties. Only provided fields will be updated.
Path Parameters
id- The ticket number
Request Body
All fields are optional.
| Field | Type | Description |
|---|---|---|
title | string | Update title |
content | string | Update description (HTML) |
statusId | string | Set status by ID |
open | boolean | Close (false) or reopen (true) the ticket |
assigneeId | string/null | Assign/unassign admin |
companyId | string/null | Update company association |
customFields | object | Update custom field values |
snoozedUntil | string/null | Snooze until ISO 8601 timestamp (null to unsnooze) |
skipNotifications | boolean | Skip notifications (default false) |
Closing a Ticket
Set open: false to close the ticket. Closing a ticket will also unsnooze it. The status is not changed automatically — use statusId to change the status explicitly.
File Custom Fields
File-type custom fields support the same two upload methods as ticket creation: multipart upload (customFields.<fieldId> file parts with JSON in the data field) and external URLs ({ "url": "https://..." } with optional "name" in the custom field value). Same limits apply (10 files, 400MB total, executable types blocked).
Response
Returns the updated ticket object.
Body ParametersJSON
Update a ticket
curl https://do.featurebase.app/v2/tickets/$ID \
-X PATCH \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $FEATUREBASE_API_KEY" \
-d '{
"assigneeId": "507f1f77bcf86cd799439013",
"companyId": "507f1f77bcf86cd799439015",
"content": "<p>Updated description.</p>",
"snoozedUntil": "2025-01-16T09:00:00.000Z",
"statusId": "507f1f77bcf86cd799439016",
"title": "Updated ticket title"
}'{
"id": "507f1f77bcf86cd799439011",
"assigneeId": "507f1f77bcf86cd799439013",
"author": {
"id": "507f1f77bcf86cd799439011",
"email": "john@example.com",
"name": "John Doe",
"profilePicture": "https://cdn.example.com/avatars/john.png",
"type": "customer"
},
"categoryType": "customer",
"companyId": "507f1f77bcf86cd799439015",
"content": "<p>I get a 403 error when logging in.</p>",
"createdAt": "2025-01-15T10:30:00.000Z",
"customFields": {
"priority": "bar",
"507f1f77bcf86cd799439099": "bar"
},
"integrations": {
"clickup": [
{
"id": "86a1b2c3d",
"title": "Fix login bug",
"url": "https://app.clickup.com/t/86a1b2c3d"
}
],
"devops": [
{
"id": 789,
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"projectName": "My Project",
"title": "Implement SSO",
"url": "https://dev.azure.com/org/project/_workitems/edit/789"
}
],
"github": [
{
"id": "1234567890",
"number": "42",
"repositoryFullName": "acme/frontend",
"repositoryName": "frontend",
"title": "Login page returns 403",
"url": "https://github.com/acme/frontend/issues/42"
}
],
"hubspot": [
{
"dealAmount": 5000,
"dealClosed": false,
"objectId": 12345,
"type": "DEAL"
}
],
"jira": [
{
"issueId": "PROJ-456",
"issueUrl": "https://company.atlassian.net/browse/PROJ-456"
}
],
"linear": [
{
"issueId": "LIN-123",
"issueUrl": "https://linear.app/team/issue/LIN-123"
}
]
},
"linkedConversations": [
{
"id": "507f1f77bcf86cd799439011",
"role": "customer"
}
],
"object": "ticket",
"open": true,
"snoozedUntil": "2025-01-16T09:00:00.000Z",
"status": {
"id": "507f1f77bcf86cd799439011",
"color": "Blue",
"isDefault": false,
"name": "In Progress",
"object": "post_status",
"type": "active"
},
"teamAssigneeId": "507f1f77bcf86cd799439014",
"ticketCategoryId": "507f1f77bcf86cd799439011",
"ticketNumber": 42,
"ticketUrl": "https://feedback.example.com/p/cannot-login",
"title": "Cannot login to dashboard",
"updatedAt": "2025-01-15T12:30:00.000Z",
"conversationParts": [
{
"id": "1",
"bodyHtml": "<p>Hello, I have a question about your product.</p>",
"bodyMarkdown": "Hello, I have a question about your product.",
"channel": "desktop",
"createdAt": "2025-01-15T10:30:00.000Z",
"object": "conversation_part",
"partType": "user_msg",
"updatedAt": "2025-01-15T10:30:00.000Z",
"author": {
"id": "676f0f6765bdaa7d7d760f88",
"type": "customer",
"email": "john@example.com",
"name": "John Doe",
"profilePicture": "https://cdn.example.com/avatars/user.png"
},
"redacted": false,
"tagApplications": [
{
"appliedAt": "2025-01-15T10:30:00.000Z",
"tagId": "67ec1234abcd5678ef901234",
"appliedBy": {
"type": "admin",
"id": "507f1f77bcf86cd799439011",
"name": "John Doe"
},
"removedAt": "2025-01-15T11:00:00.000Z",
"removedBy": {
"type": "admin",
"id": "507f1f77bcf86cd799439011",
"name": "John Doe"
},
"tag": {
"id": "67ec1234abcd5678ef901234",
"name": "Churn",
"type": "tag"
}
}
]
}
]
}Returns Examples
{
"id": "507f1f77bcf86cd799439011",
"assigneeId": "507f1f77bcf86cd799439013",
"author": {
"id": "507f1f77bcf86cd799439011",
"email": "john@example.com",
"name": "John Doe",
"profilePicture": "https://cdn.example.com/avatars/john.png",
"type": "customer"
},
"categoryType": "customer",
"companyId": "507f1f77bcf86cd799439015",
"content": "<p>I get a 403 error when logging in.</p>",
"createdAt": "2025-01-15T10:30:00.000Z",
"customFields": {
"priority": "bar",
"507f1f77bcf86cd799439099": "bar"
},
"integrations": {
"clickup": [
{
"id": "86a1b2c3d",
"title": "Fix login bug",
"url": "https://app.clickup.com/t/86a1b2c3d"
}
],
"devops": [
{
"id": 789,
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"projectName": "My Project",
"title": "Implement SSO",
"url": "https://dev.azure.com/org/project/_workitems/edit/789"
}
],
"github": [
{
"id": "1234567890",
"number": "42",
"repositoryFullName": "acme/frontend",
"repositoryName": "frontend",
"title": "Login page returns 403",
"url": "https://github.com/acme/frontend/issues/42"
}
],
"hubspot": [
{
"dealAmount": 5000,
"dealClosed": false,
"objectId": 12345,
"type": "DEAL"
}
],
"jira": [
{
"issueId": "PROJ-456",
"issueUrl": "https://company.atlassian.net/browse/PROJ-456"
}
],
"linear": [
{
"issueId": "LIN-123",
"issueUrl": "https://linear.app/team/issue/LIN-123"
}
]
},
"linkedConversations": [
{
"id": "507f1f77bcf86cd799439011",
"role": "customer"
}
],
"object": "ticket",
"open": true,
"snoozedUntil": "2025-01-16T09:00:00.000Z",
"status": {
"id": "507f1f77bcf86cd799439011",
"color": "Blue",
"isDefault": false,
"name": "In Progress",
"object": "post_status",
"type": "active"
},
"teamAssigneeId": "507f1f77bcf86cd799439014",
"ticketCategoryId": "507f1f77bcf86cd799439011",
"ticketNumber": 42,
"ticketUrl": "https://feedback.example.com/p/cannot-login",
"title": "Cannot login to dashboard",
"updatedAt": "2025-01-15T12:30:00.000Z",
"conversationParts": [
{
"id": "1",
"bodyHtml": "<p>Hello, I have a question about your product.</p>",
"bodyMarkdown": "Hello, I have a question about your product.",
"channel": "desktop",
"createdAt": "2025-01-15T10:30:00.000Z",
"object": "conversation_part",
"partType": "user_msg",
"updatedAt": "2025-01-15T10:30:00.000Z",
"author": {
"id": "676f0f6765bdaa7d7d760f88",
"type": "customer",
"email": "john@example.com",
"name": "John Doe",
"profilePicture": "https://cdn.example.com/avatars/user.png"
},
"redacted": false,
"tagApplications": [
{
"appliedAt": "2025-01-15T10:30:00.000Z",
"tagId": "67ec1234abcd5678ef901234",
"appliedBy": {
"type": "admin",
"id": "507f1f77bcf86cd799439011",
"name": "John Doe"
},
"removedAt": "2025-01-15T11:00:00.000Z",
"removedBy": {
"type": "admin",
"id": "507f1f77bcf86cd799439011",
"name": "John Doe"
},
"tag": {
"id": "67ec1234abcd5678ef901234",
"name": "Churn",
"type": "tag"
}
}
]
}
]
}