> ## 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.

# Голос за тему

> Добавляет или снимает голос за тему, если её тип поддерживает голосование.

Добавляет или снимает голос за тему, если её тип поддерживает голосование.

## Доступ

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

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

Ключ API. Храните его на сервере интеграции; в примере используется переменная окружения.

Обязательные scopes: `thread:write`.

## Особенности

Голосование должно поддерживаться данным содержимым; отрицательный голос дополнительно требует поддержки `down` и соответствующего права. Повторный голос того же направления снимает его. `action` сообщает результат, а итоговые счётчики в этом ответе не возвращаются.

## Параметры

**id** `integer` *required*

ID темы. Значение `123` в примере условное.

**type** `string` *required*

Направление голоса: `up` или `down`. Повторная передача текущего направления снимает голос.

Тело запроса: `application/x-www-form-urlencoded`. Данные передаются в UTF-8.

## Успешный ответ

HTTP `200`. Пример ниже сокращён и содержит только условные данные. Полные объекты и условия видимости полей описаны в [схемах данных](/guard-forum/models).

| Поле | Тип | Описание |
| - | - | - |
| `success` | `true` | `true`, если действие выполнено успешно. |
| `action` | `string` | `insert` — действие добавлено; `delete` — существующая реакция или голос сняты. |

## Ошибки

Стандартный ответ содержит массив `errors` с `code`, `message` и `params`. Проверяйте HTTP-статус и машинный код; [формат и обработка ошибок](/guard-forum/requests-and-errors) общие для API.

```bash cURL theme={null}
curl --request POST \
  --header "XF-Api-Key: $FORUM_API_KEY" \
  --header 'Accept: application/json' \
  --data-urlencode 'type=up' \
  'https://forum.arzguard.com/api/threads/123/vote'
```

```json Сокращённый условный ответ theme={null}
{
  "success": true,
  "action": "insert"
}
```


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