---
title: "Add Discussion Reply"
method: POST
path: "/projects/{projectId}/discussions/{discussionId}/replies"
tags: ["Discussions"]
---

# Add Discussion Reply

`POST /projects/{projectId}/discussions/{discussionId}/replies`

## Request

- Base URL: `https://api.crowdin.com/api/v2`
- URL: `https://api.crowdin.com/api/v2/projects/{projectId}/discussions/{discussionId}/replies`
- Auth: none declared
- TypeScript: <https://skmtc.dev/crowdin/apis/crowdin-api-v2/docs/projects/:projectId/discussions/:discussionId/replies/post.ts> (a function with typed inputs; its response is checked against the schema)

**Required scopes:** `project.discussion` (Read and Write).

Posts a reply to a project discussion. The discussion participants who have not muted it are notified about the reply, and the users mentioned in the reply are notified about the mention.

__Note:__ Only project members can reply

## Path parameters

- `projectId` integer, required
- `discussionId` integer, required

## Request body

- DiscussionReplyCreateForm
  - `text` string, required: Reply text in Markdown, up to 16000 characters. Mention a project member with `@username` to notify them

## Response `201`

Reply created

- DiscussionReplyResource: Base schema of resource container. Container is a wrapper object that contains payload in required `data` property and provides space for adding any other metadata.
  - `data` DiscussionReply, required
    - `id` integer: ID of the reply
    - `discussionId` integer: ID of the discussion the reply belongs to
    - `type` 'reply' | 'description' | 'system': Reply type. One of: `description` for the description of the discussion, always its first reply; `reply` for a regular reply; `system` for the note posted when the discussion is closed or reopened
    - `text` string: Reply text in Markdown. For `system` replies, the status the discussion was moved to: `open` or `closed`
    - `userId` integer: ID of the user who posted the reply
    - `user` DiscussionUser: Author of a discussion or reply
      - `id` integer, nullable: ID of the user
      - `username` string, nullable: Username of the user
      - `fullName` string, nullable: Full name of the user, or the username when the full name is not set
      - `avatarUrl` string, nullable: URL of the user avatar
    - `createdAt` string, date-time: Date the reply was posted, in ISO 8601 format
    - `updatedAt` string, date-time: Date the reply was last edited, in ISO 8601 format. Equals `createdAt` when the reply was never edited

## Other responses

- `400`: Invalid Request Body
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Project or discussion with specified id was not found

---

[API](https://skmtc.dev/crowdin/apis/crowdin-api-v2.md) - [All operations](https://skmtc.dev/crowdin/apis/crowdin-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/crowdin/apis/crowdin-api-v2/revisions/27aae7751699?raw)
