Summarise ticket
Condense a support ticket — subject, body, and the comment thread — into a short summary plus structured intent. Tuned to preserve the caller's request, the agent's last action, and what's blocking resolution.
Use this instead of Summarise text when you have ticket-shaped input — it understands the difference between the original request and subsequent comments, and weights them appropriately.
Headers
Same as Summarise text —
Authorization, Content-Type, optional Idempotency-Key.
Request body
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| subject | string | Yes | — | Ticket subject line. 1–500 characters. |
| body | string | Yes | — | The original ticket body. 1–32,000 characters. |
| comments | array of objects | No | [] | Comment thread, oldest first. Each item: { author_role: "customer" | "agent", text: string, created_at?: ISO 8601 }. Up to 100 comments. |
| status | "open" | "pending" | "resolved" | "closed" | No | — | Current ticket status. Helps the model interpret the thread. |
| format | "paragraph" | "bullets" | No | "bullets" | Shape of the summary. |
| metadata | object | No | — | Free-form key/value pairs echoed on the response. |
Response
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | — | Unique identifier for this summarisation. |
| summary | string | Yes | — | The summary, in the requested format. |
| last_action | string | Yes | — | A one-line description of the most recent meaningful action on the ticket. |
| blocking_on | "customer" | "agent" | "neither" | Yes | — | Who the ticket is currently waiting on. |
| intent | object | Yes | — | Same shape as Summarise text. |
| usage | object | Yes | — | Token counts. |
| created_at | string (ISO 8601) | Yes | — | UTC timestamp. |
Examples
Example response
{
"id": "sumt_01HZQ7K8YV9X3R2M5N6P7QABCD",
"summary": "- Customer (org acme-1042) cannot export Q1 invoices to CSV; the Export button hangs on a spinner.\n- Reproduces in both Chrome and Safari.\n- Agent has captured the org id; investigation has not started yet.",
"last_action": "Customer provided org id (acme-1042).",
"blocking_on": "agent",
"intent": {
"action_needed": true,
"due_date": null,
"urgency_score": 55,
"sensitivity": "low"
},
"usage": { "input_tokens": 112, "output_tokens": 81, "total_tokens": 193 },
"created_at": "2026-05-10T17:42:11Z"
}
Errors
See Errors. The most common ticket-specific failures:
| Status | Code | When |
| --- | --- | --- |
| 400 | invalid_request | subject or body missing/empty. |
| 400 | invalid_request | A comment has an invalid author_role. |
| 413 | payload_too_large | Combined size of body + comments exceeds 64,000 characters. |