Update ticket
curl -X PATCH "/api/v1/tickets/example_string" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN (API key (ixk_...))" \
-d '{
"subject": "example_string",
"status": "open",
"status_id": "123e4567-e89b-12d3-a456-426614174000",
"priority": "low",
"priority_id": "123e4567-e89b-12d3-a456-426614174000",
"assignee_id": "123e4567-e89b-12d3-a456-426614174000",
"inbox_id": "123e4567-e89b-12d3-a456-426614174000",
"contact_id": "123e4567-e89b-12d3-a456-426614174000",
"remind_at": "2024-12-25T10:00:00Z",
"remind_transition_status_id": "123e4567-e89b-12d3-a456-426614174000",
"custom_fields": {}
}'
import requests
import json
url = "/api/v1/tickets/example_string"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN (API key (ixk_...))"
}
data = {
"subject": "example_string",
"status": "open",
"status_id": "123e4567-e89b-12d3-a456-426614174000",
"priority": "low",
"priority_id": "123e4567-e89b-12d3-a456-426614174000",
"assignee_id": "123e4567-e89b-12d3-a456-426614174000",
"inbox_id": "123e4567-e89b-12d3-a456-426614174000",
"contact_id": "123e4567-e89b-12d3-a456-426614174000",
"remind_at": "2024-12-25T10:00:00Z",
"remind_transition_status_id": "123e4567-e89b-12d3-a456-426614174000",
"custom_fields": {}
}
response = requests.patch(url, headers=headers, json=data)
print(response.json())
const response = await fetch("/api/v1/tickets/example_string", {
method: "PATCH",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN (API key (ixk_...))"
},
body: JSON.stringify({
"subject": "example_string",
"status": "open",
"status_id": "123e4567-e89b-12d3-a456-426614174000",
"priority": "low",
"priority_id": "123e4567-e89b-12d3-a456-426614174000",
"assignee_id": "123e4567-e89b-12d3-a456-426614174000",
"inbox_id": "123e4567-e89b-12d3-a456-426614174000",
"contact_id": "123e4567-e89b-12d3-a456-426614174000",
"remind_at": "2024-12-25T10:00:00Z",
"remind_transition_status_id": "123e4567-e89b-12d3-a456-426614174000",
"custom_fields": {}
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"subject": "example_string",
"status": "open",
"status_id": "123e4567-e89b-12d3-a456-426614174000",
"priority": "low",
"priority_id": "123e4567-e89b-12d3-a456-426614174000",
"assignee_id": "123e4567-e89b-12d3-a456-426614174000",
"inbox_id": "123e4567-e89b-12d3-a456-426614174000",
"contact_id": "123e4567-e89b-12d3-a456-426614174000",
"remind_at": "2024-12-25T10:00:00Z",
"remind_transition_status_id": "123e4567-e89b-12d3-a456-426614174000",
"custom_fields": {}
}`)
req, err := http.NewRequest("PATCH", "/api/v1/tickets/example_string", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN (API key (ixk_...))")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('/api/v1/tickets/example_string')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN (API key (ixk_...))'
request.body = '{
"subject": "example_string",
"status": "open",
"status_id": "123e4567-e89b-12d3-a456-426614174000",
"priority": "low",
"priority_id": "123e4567-e89b-12d3-a456-426614174000",
"assignee_id": "123e4567-e89b-12d3-a456-426614174000",
"inbox_id": "123e4567-e89b-12d3-a456-426614174000",
"contact_id": "123e4567-e89b-12d3-a456-426614174000",
"remind_at": "2024-12-25T10:00:00Z",
"remind_transition_status_id": "123e4567-e89b-12d3-a456-426614174000",
"custom_fields": {}
}'
response = http.request(request)
puts response.body
{
"data": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"ticket_number": 42,
"subject": "example_string",
"inbox_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "open",
"status_id": "123e4567-e89b-12d3-a456-426614174000",
"status_name": "John Doe",
"status_color": "example_string",
"priority": "low",
"priority_id": "123e4567-e89b-12d3-a456-426614174000",
"priority_name": "John Doe",
"priority_color": "example_string",
"assignee_id": "123e4567-e89b-12d3-a456-426614174000",
"contact_id": "123e4567-e89b-12d3-a456-426614174000",
"remind_at": "2024-12-25T10:00:00Z",
"remind_transition_status_id": "123e4567-e89b-12d3-a456-426614174000",
"created_at": "2024-12-25T10:00:00Z",
"updated_at": "2024-12-25T10:00:00Z",
"custom_fields": {}
}
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Forbidden",
"message": "You don't have permission to access this resource",
"code": 403
}
{
"error": "Not Found",
"message": "The requested resource was not found",
"code": 404
}
{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Please try again later",
"code": 429,
"retryAfter": 3600
}
/tickets/{id}API key from Settings → API. Pass as Authorization: Bearer <key>
The media type of the request body
Custom status ID (takes precedence over status)
Custom priority ID (takes precedence over priority)
Applied when PATCH also sets status to waiting (status or status_id)
Custom status to return to when reminder fires; tenant-scoped
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token (API key (ixk_...)). API key from Settings → API. Pass as Authorization: Bearer <key>
Path Parameters
Body
openin_progresswaitingresolvedclosedCustom status ID (takes precedence over status)
lownormalhighurgentCustom priority ID (takes precedence over priority)
Applied when PATCH also sets status to waiting (status or status_id)
Custom status to return to when reminder fires; tenant-scoped
Responses
Ticket with custom_fields (GET by id, POST create 201, PATCH 200). GET /tickets/{id} may add optional keys when using include= (tags, contact, company, inbox, sla, participants).
Status type (semantic category)
openin_progresswaitingresolvedclosedCustom status ID
Custom status display name
Custom status hex color
Priority level (semantic category)
lownormalhighurgentCustom priority ID
Custom priority display name
Custom priority hex color
Set when transitioning to waiting (with status / status_id)
Validation error
Problem code unauthorized — missing/invalid Authorization: Bearer, or revoked API key.
Problem code forbidden — workspace has no API access entitlement, or insufficient_scope — read-only API key used for POST/PATCH/DELETE.
Not found
Rate limit exceeded
Last updated 3 weeks ago
Built with Documentation.AI