Create tickets

Files a customer support ticket into the public help center.

POST /v1/help/tickets

Addresshttps://api.hanzo.ai/v1/help/tickets
MethodPOST
Operationpost_help_tickets
AuthAuthorization: Bearer $HANZO_API_KEY

Files a customer support ticket into the public help center. It creates the ticket (status Open, source portal) with the customer's message on the description, then records that same message as the opening entry of the ticket's conversation thread; the description carries it regardless, so failing to write that entry loses nothing. Answers 201 with an opaque reference.

A deployment with no help center answers 404, one whose center has not installed the Help model answers 503, and a body over 64 KiB answers 413 — in that order, which is the order the route has always decided them in.

Request

4 fields, body application/json (required).

FieldInTypeRequiredDescription
descriptionbodystring—Description is the customer's message.
emailbodystring—Email is how the support team replies.
prioritybodystring—Priority is Low, Medium, High or Urgent, case-insensitively.
subjectbodystring—Subject is the one-line summary of the problem.

Response

StatusBodyMeaning
201help.helpTicketFiledcreated
defaultproblem-detailsrefused

201 body — 2 fields.

FieldInTypeAlwaysDescription
statusbodystring—Status is the lifecycle state the ticket was filed in — always "Open".
ticketbodystring—Ticket is the opaque, random customer-facing reference ("tkt_" + 24 hex characters).

Failure carries the platform error shape — see Errors.

Examples

hanzo help tickets
import { Configuration, HelpApi } from 'hanzoai';

const api = new HelpApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postHelpTickets({ description: "<description>", email: "<email>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import HelpApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = HelpApi(client).post_help_tickets(description="<description>", email="<email>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.HelpAPI.PostHelpTickets(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, help_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = help_api::post_help_tickets(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.HelpApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new HelpApi(client).postHelpTickets();
curl -X POST https://api.hanzo.ai/v1/help/tickets \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "description": "<description>",
       "email": "<email>"
     }'

MCP reaches help through the help tool, which names its 4 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_help_articles"
         }
       }
     }'

Help API · All Hanzo APIs · Interactive reference

Was this page useful?