# Create tickets

URL: https://docs.hanzo.ai/docs/openapi/help/post-help-tickets

> Files a customer support ticket into the public help center.

`POST /v1/help/tickets`

> [Help →](https://docs.hanzo.ai/docs/openapi/help) · [All API references →](https://docs.hanzo.ai/docs/openapi) · [Get started →](https://docs.hanzo.ai/docs/guides)

|               |                                        |
| ------------- | -------------------------------------- |
| **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.                       |
| `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`     | help.helpTicketFiled | created |
| `default` | problem-details      | refused |

`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](https://docs.hanzo.ai/docs/errors).

## Examples

**CLI**

```bash
hanzo help tickets
```

**SDK**

**.ts**

```ts
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>" });
```

**.py**

```python
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>")
```

**.go**

```go
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
}
```

**.rs**

```rust
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?;
```

**.java**

```java
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();
```

**HTTP**

```bash
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**

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:

```bash
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](https://docs.hanzo.ai/docs/openapi/help) · [All Hanzo APIs](https://docs.hanzo.ai/docs/openapi) · [Interactive reference](https://docs.hanzo.ai/docs/openapi/reference)
