# Queue an outbound reply on a ticket

> `POST` `/v1/ticket-messages`

URL: https://www.agencytitan.com/docs/tag/ticket-messages/POST/v1/ticket-messages

Operation ID: `ticket_messages_create`

Tag: [ticket_messages](https://www.agencytitan.com/docs/tag/ticket-messages.md)

## Description

Queues a real external email or SMS and returns 202; success means queued, never sent or delivered. Pending and scheduled messages are claimed asynchronously, while pending_review is held until approval. Poll the message or communication log for delivered, bounced, complained, or failed outcomes and failure_reason. Every recipient must already be on the thread or be deliberately authorized through ticket_correspondents.create; the sending inbox is explicit, attachments are unsupported, and enabled block-send policy checks fail closed. A human caller is assigned to the ticket. Reviewer targeting is advisory, and once a worker claims an external message it cannot be recalled.

## Parameters

- `Idempotency-Key` (header, required, `string`) — Caller-generated key for deterministic command replay (1-255 characters).

## Request body

- Required: yes
- Content-Type: `application/json`
  - Type: `object`
  - Properties:
    - `applied_signature_snapshot` (`string|null`)
    - `applied_signature_source` (`string|null`)
    - `applied_tenant_signature_id` (`string|null`)
    - `applied_user_signature_id` (`string|null`)
    - `bcc_addresses` (`array<string>`)
    - `body_html` (`string`, required)
    - `body_text` (`string|null`)
    - `cc_addresses` (`array<string>`)
    - `client_message_id` (`string`, required)
    - `from_inbox_id` (`string`, required)
    - `request_review` (`boolean`)
    - `reviewer_ids` (`array<string>`)
    - `scheduled_send_at` (`string|null`)
    - `subject` (`string|null`)
    - `ticket_id` (`string`, required)
    - `to_addresses` (`array<string>`)

## Responses

- `200` (`application/json`): Successful response.
  - Type: `object`
  - Properties:
    - `data` (`object`, required)
- `202` (`application/json`): Command is checkpointed or another request holds its live lease.
  - Type: `object`
  - Properties:
    - `data` (`object`, required)
- `400` (`application/json`): Request validation failed (unknown or out-of-range parameters/properties are rejected).
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `401` (`application/json`): Missing, invalid, expired, or revoked bearer token.
  - Type: `object`
  - Properties:
    - `error` (`string`, required)
    - `error_description` (`string`, required)
- `403` (`application/json`): The authenticated user does not have permission for this operation.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `404` (`application/json`): The requested resource was not found.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `409` (`application/json`): The request conflicts with an existing record or partially applied.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `429` (`application/json`): Per-tenant rate limit exceeded (600 requests/minute across all /v1 REST endpoints). The Retry-After header indicates how many seconds to wait.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `500` (`application/json`): An unexpected internal error occurred.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)

## Authentication

- `bearerAuth` — http (bearer) — All /v1 endpoints (except `/v1/openapi.json` and `/v1/llms.txt`) require a bearer token. Two equal first-class paths: (1) an OAuth 2.0 access token from the au…

## Useful links

- Interactive page: https://www.agencytitan.com/docs/tag/ticket-messages/POST/v1/ticket-messages
- API reference home: https://www.agencytitan.com/docs/
- Tag page: https://www.agencytitan.com/docs/tag/ticket-messages.md
- This operation as Markdown: https://www.agencytitan.com/docs/tag/ticket-messages/POST/v1/ticket-messages.md
- OpenAPI JSON: https://www.agencytitan.com/docs/openapi.json
- Full API Markdown: https://api.agencytitan.com/v1/llms.txt
- API keys: https://app.agencytitan.com/settings/api-mcp
