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

# Поставить реакцию на сообщение

> Добавляет реакцию к сообщению или убирает повторно указанную реакцию.

Добавляет реакцию к сообщению или убирает повторно указанную реакцию.

Операция переключает реакцию. Повтор запроса с тем же `reaction_id` может убрать её, поэтому запрос нельзя безусловно повторять как идемпотентную установку состояния.

## Доступ

Передавайте `XF-Api-Key` в заголовке каждого запроса. [Типы ключей и выбор пользователя](/guard-forum/authentication).

Требуемые scopes: `conversation:write`. Все перечисленные разрешения нужны одновременно.

Нужен контекст зарегистрированного пользователя. Для Super key укажите `XF-Api-User`; доступ к объектам и действиям проверяется отдельно от scopes.

## Параметры

**XF-Api-Key** `string` *required*

Секретный API-ключ. В примерах ключ берётся из серверной переменной `$FORUM_API_KEY`.

**id** `integer` *required*

Идентификатор сообщения.

Тело запроса: `application/x-www-form-urlencoded`. Вложенные значения передавайте в форме с квадратными скобками в имени поля.

**reaction\_id** `integer` *required*

ID реакции. Повторная передача уже установленной реакции убирает её.

## Ответ

HTTP `200`, JSON. [Схемы объектов и условные поля](/guard-forum/models).

**success** `true`

Результат выполнения операции.

**action** `string`

Результат изменения реакции: `insert` — добавлена, `delete` — удалена.

Ошибки возвращаются в общей структуре `errors`. Обрабатывайте поле `code`; текст `message` может меняться или переводиться. [Формат ошибок](/guard-forum/requests-and-errors).

```bash cURL theme={null}
curl --request POST 'https://forum.arzguard.com/api/conversation-messages/123/react' \
  --header "XF-Api-Key: $FORUM_API_KEY" \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'reaction_id=1'
```

```json 200 · условный пример theme={null}
{
  "success": true,
  "action": "insert"
}
```

Примеры сокращены и содержат только условные значения. Состав полей объектов зависит от прав, контекста и установленных дополнений.


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