---
title: "POST /issues/{id}/draft-reply"
method: POST
path: "/issues/{id}/draft-reply"
tags: ["messages"]
---

# POST /issues/{id}/draft-reply

`POST /issues/{id}/draft-reply`

Create or update a draft reply
Creates a private customer-reply draft without sending it. The draft is visible only to its owner and may require a normal issue refetch before appearing in the app. For unlinked or service API tokens, user_id is required. This endpoint updates only untouched drafts that it previously created; every other existing draft returns a conflict.

**Rate limit:** 30 requests per minute

## Path parameters

- `id` string, required

## Request body

- CreateIssueDraftReplyRequestBody
  - `body_html` string, required — The draft body in HTML.
  - `user_id` string — The active Pylon user who should own and see the draft. Defaults to the API-token user when it is a human Pylon user; required for unlinked or service API tokens.

## Response `200`

- CreateIssueDraftReplyResponseBody
  - `data` CreateIssueDraftReplyResponseData
    - `id` string — The ID of the draft.
    - `issue_id` string — The ID of the issue.
    - `status` 'created' | 'updated' — Whether the endpoint created or updated the draft.
    - `updated_at` string — The time the draft was last updated.
    - `user_id` string — The ID of the Pylon user who owns and can see the draft.
  - `request_id` string — The request ID for tracking.

## Other responses

- `400` — The request was invalid or could not be completed.
- `403` — The authenticated caller or organization is not allowed to access this endpoint or operation.
- `404`
- `409`
- `500` — An unexpected internal error occurred.

---

[API](https://skmtc.dev/usepylon/apis/pylon-api.md) · [All operations](https://skmtc.dev/usepylon/apis/pylon-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/usepylon/pylon-api/revisions/7b12ab92de27/schema)
