---
title: "Reply to comment"
method: POST
path: "/api/apps/{app_id}/comments/threads/{thread_id}/replies"
---

# Reply to comment

`POST /api/apps/{app_id}/comments/threads/{thread_id}/replies`

## Request

- Base URL: `https://app.base44.com`
- URL: `https://app.base44.com/api/apps/{app_id}/comments/threads/{thread_id}/replies`
- Auth: HTTP bearer

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Adds a reply to a comment thread. Replying to a resolved thread doesn't reopen it.

`mentioned_emails` records who the comment mentions. Only emails that [List mentionable users](/api-reference/list-mentionable-users) returns are kept, and the rest are dropped without an error. Mentioning someone sends them no email or notification, and responses never return the list.

Anyone with the app open in the builder sees the change right away.

This is limited to 120 requests per minute per app, shared by every other comments endpoint. A signed-in session has its own limit, and every personal access token for the workspace shares one. Some workspaces have a different limit. Every request that counts against the limit gets `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset` (Unix time in seconds) headers, and a `429` also gets `Retry-After` in seconds. If the limiter itself is unavailable, requests go through without these headers.

<Note>Call this as an editor of the app, with a personal access token sent as a Bearer token or from a signed-in session. Viewers in the app's workspace, read-only tokens, and workspace API keys are refused.</Note>

## Path parameters

- `app_id` string, required: ID of the app.
- `thread_id` string, required: ID of the comment thread, from `thread.id` in [List comments](/api-reference/list-comments) called with the same `branch_id`.

## Query parameters

- `branch_id` string: ID of the branch to work on, as returned by [List branches](/api-reference/list-branches). Omit it to work on the app's main branch.

## Request body

- ReplyToAppCommentPayload: A reply to a comment thread.
  - `content` string, required: Text of the comment, 1 to 5000 characters.
  - `mentioned_emails` string[]: Emails of up to 50 people the comment mentions. Mentions send no notification.

## Response `200`

The new reply.

- CommentMessage: One comment: the first comment of a thread or a reply.
  - `id` string, required: ID of the comment.
  - `content` string, required: Text of the comment.
  - `sender_id` string, required: ID of the Base44 user who wrote it, or `base44` for a reply from the AI.
  - `sender_name` string, required: Name of the author when they wrote it, or their email when they had no name. `Base44` for the AI.
  - `sender_avatar_url` string, nullable, required: URL of the author's profile image, or `null` when they have none.
  - `created_date` string, date-time, required: When the comment was posted, in UTC.
  - `edited_at` string, date-time, nullable, required: When the comment was last edited, in UTC, or `null` when it never was.
  - `reactions` object, required: Each emoji reacted with, mapped to the IDs of the users who reacted with it.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: You don't have editor access to this app, you're a viewer in the app's workspace, the app is blocked, or your token is read-only or a workspace API key.
- `404`: App or comment thread not found, or no branch you can see has this `branch_id`. A thread is found only with the `branch_id` it was created on, or with no `branch_id` for a thread on main.
- `409`: Your workspace requires an unlocked SSO session.
- `422`: Validation Error
- `429`: Rate limit exceeded. Wait the number of seconds in `Retry-After` before retrying.

## Changes

> 58 revisions in range; 1 not diffed.

- **2026-10-21** `c23775445de2`: 1 breaking, 1 info
  - `query` request parameter `branch_id` list-of-types was narrowed by removing types `null`
  - for the `query` request parameter `branch_id`, the type was generalized from no type to `string`
- **2026-10-21** `4e0beb03385b`: 1 info
  - added the new optional `query` request parameter `branch_id`
- **2026-10-12** `5e139db2e643`: 1 info
  - the endpoint scheme security `PersonalAccessTokenAuth` was added to the API
- **2026-10-06** `dddf17e0f9f0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/adexad/apis/base44-app-management-api/changes/api/apps/:app_id/comments/threads/:thread_id/replies/post.md)

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adexad/apis/base44-app-management-api/revisions/fa29e915c226?raw)
