Ответы и отчёты
AI-отчёт и оформление
Сборка AI-отчёта, сохранённые фильтры и оформление отчётов аккаунта
AI-отчёт, сохранённые фильтры и оформление
AI-отчёт требует тарифной опции AI-отчётов и права участника view_results:
он строится по ответам респондентов. Плюс тарифный лимит — сколько разных
опросов аккаунта могут иметь AI-отчёт; у опроса с уже собранным отчётом место
занято, и перезапуск лимита не касается.
72. Запустить сборку AI-отчёта
В API с 08.09.2026
Сборка идёт в фоне и стоит денег, поэтому запуск и чтение разделены.
POST/quiz/{id}/ai-report
| Поле | Тип | Описание |
|---|---|---|
section |
string | all (по умолчанию), text, comparative, quantitative. |
locale |
string | Язык отчёта. По умолчанию язык интерфейса владельца ключа. |
{"status": true, "quiz_id": 18547, "queued": ["text"], "already_running": ["comparative"], "refused": {}}refused — разделы, которые сборку не приняли, с причиной. Принудительного
перезапуска в API нет: в кабинете он только для админов и обходит задержку,
которая защищает от лишних трат.
Лимит исчерпан — 403 с кодом ai_report_limit_reached, признаком
blocked_by_tariff: true и полями used и limit.
Ни один раздел не встал в очередь — 400 с кодом ai_report_refused и полем
refused: причины перечислены там же.
73. Готовый AI-отчёт
В API с 08.09.2026
GET/quiz/{id}/ai-report
74. Публичная ссылка на AI-отчёт
В API с 08.09.2026
POST/quiz/{id}/ai-report/share
Отчёт ещё не собран — 400 с кодом report_not_ready. Тариф без публичных
ссылок — 403 с blocked_by_tariff.
75. Сохранить набор фильтров
В API с 08.09.2026
Требует право view_results.
POST/quiz/{id}/filters
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
type |
string | Да | answers — для списка ответов, report — для отчёта. |
filters |
array | Да | Набор фильтров. |
Набор хранит и поля period, viewed, payment, source, complained, stopped_at, quality, city, exclude (см. метод 34); неверное значение этих полей — 422. period хранится как есть: выгрузки по сохранённому набору каждый раз считают дни заново.
В ответе — актуальный список сохранённых наборов этого типа.
132. Сколько ответов подойдёт под фильтры
В API с 14.10.2026
POST/quiz/{id}/answers/count
Считает, сколько ответов войдёт в отчёт или в список ответов с переданными фильтрами, не выбирая сами ответы. Ответы не отмечаются просмотренными.
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
section |
string | Да | report — выборка отчёта (поля метода 34 и срез statuses), answers — список ответов (вкладка is_complete / is_screenout / is_deleted, поиск search) |
| остальные | — | Нет | Фильтры, как у метода 34 |
Ответ 200: {"count": 128}. У отчёта считаются и ответы без единого отвеченного вопроса.
| Код | Когда |
|---|---|
422 |
Нет section или неверное поле фильтра ({"errors": {...}}) |
403 blocked_by_access |
Нет права на результаты опроса |
403 blocked_by_tariff |
Нет опции фильтров результатов |
429 |
Больше 120 запросов в минуту |
133. Именные фильтры результатов
В API с 14.10.2026
Наборы фильтров раздела под именем («Мои фильтры»). Последний применённый набор (метод POST /quiz/{id}/filters) от них не зависит.
| HTTP | Тело | Ответ |
|---|---|---|
GET /quiz/{id}/filters/presets?section=report |
— | 200 {"items": [...]}, новые первыми |
POST /quiz/{id}/filters/presets |
section (report | answers), name, filters |
201 — элемент |
PATCH /quiz/{id}/filters/presets/{presetId} |
name и/или filters |
200 — элемент |
DELETE /quiz/{id}/filters/presets/{presetId} |
— | 204 |
Элемент: {"id": 15, "section": "report", "name": "Москва, телефоны", "filters": {...}, "author": {"id": 77, "name": "Анна"}, "created_at": "2026-10-14T10:20:00Z", "updated_at": "2026-10-14T10:20:00Z"}; author — null, если автора удалили.
name— 1–60 символов, пробелы по краям обрезаются.filters— объект той же формы, что у метода 34; новые поля фильтра проверяются так же. Хранится как есть (порядок ключей не сохраняется), до 64 КБ.- Список видит каждый с правом на результаты; менять и удалять может автор, владелец пространства или администратор.
| Код | Когда |
|---|---|
422 code: name_required |
Имени нет или оно из одних пробелов |
422 code: presets_limit |
У раздела опроса уже 50 наборов |
422 |
Остальные ошибки полей; GET без section. Тело проверяется раньше права |
403 |
Нет права на результаты; правка и удаление — не автор и не владелец/администратор |
404 code: not_found |
Набора нет или он от другого опроса |
76. Оформление отчётов аккаунта
В API с 08.09.2026
Цвета, шрифт и подписи — настройка аккаунта: действует сразу на все его отчёты и PDF.
GET/workspace/{workspace_id}/report-appearance
{
"status": true,
"report_appearance_default": null,
"presets": [...],
"defaults": {...},
"row_options_defaults": {...},
"allowed": {"palette_id": [...], "bar_color_mode": ["single", "palette"],
"custom_colors_min": 2, "custom_colors_max": 14, "font_family_max": 64,
"sort_mode": [...], "value_format": [...]}
}report_appearance_default: null означает «общая палитра не настроена»: опросы с
включённым флагом показывают стандартный вид. allowed избавляет от угадывания.
Оговорка: allowed.sort_mode и allowed.value_format — это допустимые значения
на стороне отчёта, но запись палитры (метод 77) их не принимает; они
задаются у самого опроса. Остальные ключи allowed совпадают с полями записи.
77. Изменить палитру отчётов
В API с 08.09.2026
POST/workspace/{workspace_id}/report-appearance
Требует право account_quiz_settings: палитра общая для всех отчётов и PDF
аккаунта. Без права — 403 с blocked_by_access: true.
| Поле | Тип | Описание |
|---|---|---|
settings.palette_id |
string | Готовая палитра из allowed.palette_id. |
settings.custom_colors |
array | Свои цвета, каждый в виде #RRGGBB, от 2 до 14. |
settings.bar_color_mode |
string | single или palette. |
settings.font_family |
string|null | До 64 символов. |
settings.show_value_labels |
boolean | Подписи значений. |
settings.show_grid_lines |
boolean | Линии сетки. |
78. Наборы оформления
В API с 08.09.2026
| Действие | HTTP |
|---|---|
| Создать | POST /workspace/{workspace_id}/report-appearance/presets с полями name и settings |
| Удалить | DELETE /workspace/{workspace_id}/report-appearance/presets/{presetId} |
Набор чужого аккаунта не удалится: отбор идёт по аккаунту.