К содержанию
API v3

Ответы и отчёты

AI-отчёт и оформление

Сборка AI-отчёта, сохранённые фильтры и оформление отчётов аккаунта

Markdown для нейросетей Актуально на 15.10.2026

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 Язык отчёта. По умолчанию язык интерфейса владельца ключа.
JSON
{"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

JSON
{
    "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}

Набор чужого аккаунта не удалится: отбор идёт по аккаунту.