Reply to Support Ticket
POST/api/support/tickets/:ticket/messages
Adds a public reply to the ticket thread as the customer. CCs are the ticket's own (you cannot override them from this endpoint — that's agent-only). A colleague who replies on a ticket they are not yet on is added as a watcher.
support:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
By default a customer reply on a ticket that is in progress, waiting on the customer, resolved, or closed moves it back to open and notifies the assignee — this is the built-in "Reopen on customer reply" automation rule, which a support admin can change.
Request body:
body(required, string, max 65000)attachments[](optional, array of files, max 10, each up to the account's attachment size limit) — send asmultipart/form-datawhen including files
The response is the new message; mentions is always empty on a public reply.
Authentication: Bearer token with the support:write scope, or an authenticated session, from a user who can view the ticket. A caller whose support seat is the viewer role is refused with 403 — a viewer reads everywhere and writes nowhere, on the customer side as well as in the console. Requires the X-Tenant-Id header (or a tenant subdomain).
If this ticket was merged into another ticket, the request is refused with a 422 whose merged_into (id, number) names the live ticket — send the action there instead.
Request
Responses
- 201
- 401
- 403
- 404
- 422
- 429
Created
Response Headers
Unauthorized
Response Headers
Forbidden
Response Headers
Not Found
Response Headers
Unprocessable Content
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.