Create ticket
curl -X POST "/api/v1/tickets" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: example_string" \
-H "Authorization: Bearer YOUR_API_TOKEN (API key (ixk_...))" \
-d '{
"subject": "example_string",
"inbox_id": "123e4567-e89b-12d3-a456-426614174000",
"priority": "low",
"priority_id": "123e4567-e89b-12d3-a456-426614174000",
"assignee_id": "123e4567-e89b-12d3-a456-426614174000",
"reporter_email": "user@example.com",
"initial_internal_note": {
"body_html": "example_string",
"body_text": "example_string"
},
"custom_fields": {}
}'
import requests
import json
url = "/api/v1/tickets"
headers = {
"Content-Type": "application/json",
"Idempotency-Key": "example_string",
"Authorization": "Bearer YOUR_API_TOKEN (API key (ixk_...))"
}
data = {
"subject": "example_string",
"inbox_id": "123e4567-e89b-12d3-a456-426614174000",
"priority": "low",
"priority_id": "123e4567-e89b-12d3-a456-426614174000",
"assignee_id": "123e4567-e89b-12d3-a456-426614174000",
"reporter_email": "user@example.com",
"initial_internal_note": {
"body_html": "example_string",
"body_text": "example_string"
},
"custom_fields": {}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("/api/v1/tickets", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Idempotency-Key": "example_string",
"Authorization": "Bearer YOUR_API_TOKEN (API key (ixk_...))"
},
body: JSON.stringify({
"subject": "example_string",
"inbox_id": "123e4567-e89b-12d3-a456-426614174000",
"priority": "low",
"priority_id": "123e4567-e89b-12d3-a456-426614174000",
"assignee_id": "123e4567-e89b-12d3-a456-426614174000",
"reporter_email": "user@example.com",
"initial_internal_note": {
"body_html": "example_string",
"body_text": "example_string"
},
"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",
"inbox_id": "123e4567-e89b-12d3-a456-426614174000",
"priority": "low",
"priority_id": "123e4567-e89b-12d3-a456-426614174000",
"assignee_id": "123e4567-e89b-12d3-a456-426614174000",
"reporter_email": "user@example.com",
"initial_internal_note": {
"body_html": "example_string",
"body_text": "example_string"
},
"custom_fields": {}
}`)
req, err := http.NewRequest("POST", "/api/v1/tickets", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Idempotency-Key", "example_string")
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')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Idempotency-Key'] = 'example_string'
request['Authorization'] = 'Bearer YOUR_API_TOKEN (API key (ixk_...))'
request.body = '{
"subject": "example_string",
"inbox_id": "123e4567-e89b-12d3-a456-426614174000",
"priority": "low",
"priority_id": "123e4567-e89b-12d3-a456-426614174000",
"assignee_id": "123e4567-e89b-12d3-a456-426614174000",
"reporter_email": "user@example.com",
"initial_internal_note": {
"body_html": "example_string",
"body_text": "example_string"
},
"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": "Conflict",
"message": "The request conflicts with the current state of the resource",
"code": 409,
"details": "Resource already exists"
}
{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Please try again later",
"code": 429,
"retryAfter": 3600
}
/tickets
Target server for requests. Edit to use your own host.
API key from Settings → API. Pass as Authorization: Bearer <key>
The media type of the request body
Optional. When sent, duplicate POSTs with the same key and identical JSON body return 201 with the same ticket (no second create). Same key with a different body returns 409 (idempotency_conflict). Entries expire after 7 days.
Priority level
Custom priority ID (takes precedence over priority)
Optional; creates/links contact (RFC 5322 From-style supported)
Optional; first internal note in same DB transaction as ticket
Optional; applied in the same transaction as ticket create
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>
Headers
Optional. When sent, duplicate POSTs with the same key and identical JSON body return 201 with the same ticket (no second create). Same key with a different body returns 409 (idempotency_conflict). Entries expire after 7 days.
Body
Custom priority ID (takes precedence over priority)
Optional; creates/links contact (RFC 5322 From-style supported)
Optional; first internal note in same DB transaction as ticket
Optional; applied in the same transaction as ticket create