Где находится API вашей установки volrix.pm, как сделать первый запрос с ключом, как устроены списки, коды ошибок (401, 403, 423, 503) и Swagger.
Обновлено 16.10.2026
У каждой установки volrix.pm свой API. Он работает на том же адресе, что и веб-интерфейс, под префиксом /api/v1: если сотрудники открывают систему по адресу https://pm.company.ru, то базовый адрес API - https://pm.company.ru/api/v1. В статьях раздела он записан как **https://ваш-адрес/api/v1**. Сайт volrix.ru не является адресом API вашей организации.
Запросы и ответы передаются в JSON (UTF-8). Исключения: загрузка файлов идет формой multipart/form-data, выгрузки (PDF, XLSX, CSV, DOCX) приходят файлом. Даты передаются как ГГГГ-ММ-ДД, отметки времени - в ISO 8601, идентификаторы объектов - UUID.
API-ключ выпускается в разделе «Администрирование» → «Настройки продукта» → «Интеграции» кнопкой «Создать ключ». Как это сделать, какие права получает ключ и как войти под пользователем - в статье API: вход, токен и API-ключи.
Сначала проверьте, что сервер доступен. Этот адрес открыт без авторизации и отвечает {"status": "ok"}:
curl -sS https://ваш-адрес/api/v1/health
Затем запрос с ключом. Для примера нужен ключ со скоупом users:read («Пользователи: Просмотр»), а у сотрудника, который выпустил ключ, - такое же право в роли:
export VOLRIX_API_KEY="volrix_xxxxxxxx.секрет" # храните вне исходного кода curl --fail-with-body -sS \ -H "X-Api-Key: $VOLRIX_API_KEY" \ "https://ваш-адрес/api/v1/users?page=1&page_size=20"
Ответ - страница учетных записей. Поля элемента соответствуют схеме UserRead:
{ "items": [ { "id": "3f2c...", "email": "ivanov@company.ru", "full_name": "Иванов Иван", "is_active": true, "employee_id": "9a41...", "last_login_at": "2026-09-20T08:15:00Z", "created_at": "2026-01-12T10:00:00Z", "roles": [{"role": "user"}], "permissions": ["projects.read", "..."] } ], "total": 1, "page": 1, "page_size": 20, "pages": 1 }
Единой обертки у списков нет, смотрите колонку «Успешный ответ» в справочнике: **array[...]** - маршрут возвращает массив целиком, имя схемы или **object** - объект.
Предел page_size у каждого маршрута свой и указан в справочнике: например, 100 у пользователей и проектов, 200 у организаций и журнала аудита. Значение больше предела вернет 422.
Коды и подписи статусов, которые показывает интерфейс, отдает GET /api/v1/reference/enums (нужна сессия пользователя). Значения перечислений, принятые в теле запросов, приведены в конце каждой справочной статьи.
Текст ошибки приходит в поле detail. У 422 это список ошибок, у каждой указан путь к полю (loc) и сообщение (msg).
Интерактивная документация на сервере по умолчанию выключена. Чтобы ее открыть, администратор сервера задает в файле .env установки переменную **EXPOSE_API_DOCS=true** и перезапускает backend. После этого доступны:
Кнопка «Открыть Swagger» на экране «Интеграции» ведет на /api/docs и без этой настройки ничего не откроет. Схема описывает именно вашу версию, поэтому при расхождении со справочником верьте ей. Держите схему закрытой, если она не нужна: она раскрывает полный перечень маршрутов.
Как выпустить ключ и как проверяются его права
Создание ограниченного ключа и проверка отзыва
Мониторинг, журналы и системные настройки