> ## 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`; [тип ключа и контекст пользователя](https://docs.arzguard.com/guard-forum/authentication.md) определяют доступ к данным.

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

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

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

## Параметры

**id** `integer` *required*

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

**with\_posts** `boolean`

При `1` добавляет страницу сообщений темы.

**page** `integer`

Номер страницы сообщений при `with_posts=1`.

**with\_first\_post** `boolean`

При `1` отдельно добавляет первое сообщение темы в `first_post`.

**with\_last\_post** `boolean`

При `1` отдельно добавляет последнее сообщение темы в `last_post`.

**order** `string`

Порядок сообщений из набора, поддерживаемого типом темы. Универсальный список вариантов для всех типов не задаётся.

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

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

| Поле | Тип | Описание |
| - | - | - |
| `thread` | `Thread` | Объект темы `Thread`. |
| `first_unread` | `Post` | Первое непрочитанное сообщение. Поле присутствует, если тема непрочитана и такое сообщение найдено. |
| `first_post` | `Post` | Первое сообщение темы, если передан `with_first_post=1`. |
| `last_post` | `Post` | Последнее сообщение темы, если передан `with_last_post=1`. |
| `pinned_post` | `Post` | Закреплённое первое сообщение; возвращается, если тип темы предусматривает его закрепление. Возвращается только при `with_posts=1`, с учётом условий типа темы. |
| `highlighted_posts` | `Post[]` | Выделенные сообщения, если они определены типом темы. Причина выделения зависит от типа обсуждения. Возвращается только при `with_posts=1`, с учётом условий типа темы. |
| `posts` | `Post[]` | Сообщения выбранной страницы. Закреплённое первое сообщение не исключается из своей обычной позиции в этом массиве. Возвращается только при `with_posts=1`, с учётом условий типа темы. |
| `pagination` | `pagination` | Метаданные страницы: `current_page`, `last_page`, `per_page`, `shown`, `total`. Размер страницы определяется настройками форума. Возвращается только при `with_posts=1`, с учётом условий типа темы. |

## Ошибки

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

```bash cURL theme={null}
curl --request GET \
  --header "XF-Api-Key: $FORUM_API_KEY" \
  --header 'Accept: application/json' \
  'https://forum.arzguard.com/api/threads/123/?with_posts=1&page=1'
```

```json Сокращённый условный ответ theme={null}
{
  "thread": {
    "thread_id": 123,
    "sv_prefix_ids": [
      1
    ]
  },
  "posts": [
    {
      "post_id": 123
    }
  ],
  "pagination": {
    "current_page": 1,
    "last_page": 1,
    "per_page": 20,
    "shown": 1,
    "total": 1
  }
}
```


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