---
title: "Reply to a support ticket owned by the authenticated user"
method: POST
path: "/api/v1/support/ticket/{id}/reply"
tags: ["Support", "User"]
---

# Reply to a support ticket owned by the authenticated user

`POST /api/v1/support/ticket/{id}/reply`

Requires a fresh account session, `X-CSRF-Token`, ownership of the numeric ticket id and a non-closed ticket. The reply is persisted before best-effort notification. The JSON body is capped at 32 KiB and ticket contents are never exposed through the public MCP.

## Path parameters

- `id` integer, required

## Headers

- `X-CSRF-Token` string, required

## Request body

- SupportReplyRequest
  - `body` string, required — Trimmed before the 5–10,000 character validation.

## Response `200`

Reply persisted

- OkResponse
  - `ok` boolean, required

## Other responses

- `400` — Reply validation failed or the ticket is closed
- `401` — Authentication required (no active session)
- `403` — Invalid CSRF token, ticket not found under this account, or caller is not the owner
- `413` — Request body exceeds 32 KiB
- `429` — Rate limit exceeded
- `503` — The action-budget store, account database or migrated support schema is unavailable; reply fails closed

---

[API](https://skmtc.net/openmercantil/apis/openmercantil-public-api.md) · [All operations](https://skmtc.net/openmercantil/apis/openmercantil-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openmercantil/openmercantil-public-api/revisions/996f96a11758/schema)
