> ## Documentation Index
> Fetch the complete documentation index at: https://developers.reintersect.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a reply

> Post a message authored by your app: in a conversation, as a reply, or in a circle's chat.

> Reintersect apps are in developer preview. Names and limits can still change before general
> release.

Posts a message as your app in a conversation, as a reply to a message, or, in circles that use chat,
straight into the circle's chat. See [Writing to circles](/writing-to-circles).

Authenticate with an install token that has the `replies:write` scope. The target must be within the install's
[reach](/api-reference/overview#reach).

## Body

Send exactly one of `conversationId`, `replyTo` and `circleId`.

| Field | Type | Required | Description |
| - | - | - | - |
| `conversationId` | `string` | One of | Post in this conversation. In a circle that uses chat, the message also shows in the chat. |
| `replyTo` | `string` | One of | Reply to this message. In chat it's an inline reply; on a board, a reply under that reply. |
| `circleId` | `string` | One of | Post in this circle's chat. Only for circles that use chat; Reintersect may file the message into a conversation later. |
| `content` | `Document` | Yes | A structured document, such as the output of [`renderPayload`](/reference/client#renderpayload). Links, references, member mentions, and mentions of circles and conversations your app can reach are allowed; files and images aren't. |

## Response

The created message:

| Field | Type | Description |
| - | - | - |
| `id` | `string` | The message id. |
| `circleId` | `string` | The circle it's in. |
| `conversationId` | `string \| null` | The conversation it's filed in, or `null` for a chat message not filed in one. |
| `parentReplyId` | `string \| null` | The reply it answers on a board, or `null`. |
| `content` | `Document` | The stored content. |
| `author` | Author | Your app. |
| `createdAt`, `updatedAt` | `string` | ISO 8601 timestamps. |

## Errors

| `_tag` | Status | Cause |
| - | - | - |
| `ReintersectAppScopeMissingError` | 403 | The install lacks `replies:write`. |
| `ReintersectApiConversationNotFoundError` | 404 | No such conversation in the install's reach. |
| `ReintersectApiReplyNotFoundError` | 404 | No such message in the install's reach. |
| `ReintersectAppCircleNotFoundError` | 404 | No such circle in the install's reach, or the circle doesn't use chat. `circleIds` holds the circle id you sent. |
| `ReintersectApiReplyNestingLimitError` | 422 | On a board, the reply is already nested as deep as replies go. |
| `ReintersectApiMentionUnavailableError` | 422 | A mention names a member, circle or conversation that doesn't exist or that your app can't reach. |
| `ReintersectApiCircleMentionUnavailableError` | 422 | A circle mentioned by slug doesn't exist or your app can't reach it. |
| `ReintersectApiInvalidDocumentError` | 422 | The content isn't a valid document. |
| `ReintersectApiUnsafeLinkError` | 422 | A link uses a scheme Reintersect doesn't allow. |
| `ReintersectApiInvalidEmojiNameError`, `ReintersectApiInvalidAssetReferenceError` | 422 | An unknown emoji name or asset reference in the content. |

With the SDK, call `reintersect.replies.create({ conversationId, content: <Paragraph>Done.</Paragraph> })`,
or pass `replyTo` or `circleId` instead of `conversationId`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.