---
title: "Comment on issue"
method: POST
path: "/api/v1/issues/{code}/comments"
tags: ["issues"]
---

# Comment on issue

`POST /api/v1/issues/{code}/comments`

## Request

- Base URL: `https://api.capy.ai`
- URL: `https://api.capy.ai/api/v1/issues/{code}/comments`
- Auth: HTTP bearer

## Path parameters

- `code` string, required

## Request body

- CommentIssueRequest
  - `body` string, required
  - `replyTo` string: The comment this one answers; replies stay one level deep.
  - `files` MessageFile[]
    - `fileId` string, required: The `fileId` `POST /files` returned. The file's bytes must already be uploaded.
    - `name` string, required: The file name shown on the attachment.

## Response `200`

IssueComment

- IssueCommentEncoded
  - `id` string, required
  - `parentCommentId` string, nullable, required
  - `replyToCommentId` string, nullable, required
  - `author` IssueActorEncoded, required
    - `kind` union, required
      - 'user' | 'thread'
      - string
    - `id` string, required: A user id for `user`, resolved by `GET /users`, or a thread id for `thread`.
    - `code` string, nullable, required: The thread's reference, such as `SCO-123`; null for a user or a thread the key cannot read.
  - `body` string, required
  - `createdAt` string, required
  - `editedAt` string, nullable, required

## Other responses

- `400`: capy/InvalidRequest
- `401`: capy/Unauthorized
- `403`: capy/Forbidden
- `404`: capy/FileNotFound | capy/IssueNotFound
- `429`: capy/RateLimited

## Changes

- **2026-10-31** `e3be47264feb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/capy/apis/capy-api/changes/api/v1/issues/:code/comments/post.md)

---

[API](https://skmtc.dev/capy/apis/capy-api.md) - [All operations](https://skmtc.dev/capy/apis/capy-api/llms.txt) - [OpenAPI document](https://skmtc.dev/capy/apis/capy-api/revisions/4663f7dc4e39?raw)
