Files a customer support ticket into the public help center.
Files a customer support ticket into the public help center.
POST /v1/help/tickets
| Address | https://api.hanzo.ai/v1/help/tickets |
| Method | POST |
| Operation | post_help_tickets |
| Auth | Authorization: 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).
| Field | In | Type | Required | Description |
|---|---|---|---|---|
description | body | string | — | Description is the customer's message. |
email | body | string | — | Email is how the support team replies. Required; clipped at 320 characters (the RFC 5321 maximum). |
priority | body | string | — | Priority is Low, Medium, High or Urgent, case-insensitively. |
subject | body | string | — | Subject is the one-line summary of the problem. |
Response
| Status | Body | Meaning |
|---|---|---|
201 | helpTicketFiled | created |
201 body — 2 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
status | body | string | — | Status is the lifecycle state the ticket was filed in — always "Open". |
ticket | body | string | — | Ticket is the opaque, random customer-facing reference ("tkt_" + 24 hex characters). |
Failure carries the platform error shape — see Errors.
Examples
hanzo has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.
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 := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.HelpAPI.PostHelpTickets(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::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.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + 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>"
}'The door reaches help through the help tool, which names its 4 operations with its own verbs — this one among them, under a name only the door 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"
}
}
}'How is this guide?