Ответы и отчёты
Уникальные ссылки
Наборы адресов вида /s/<code> с лимитом ответов, сроком, расписанием и паролем. Читать — по праву view_results, менять — по праву settings; выпуск ссылок — с тарифа «Стандарт»
Наборы и ссылки
123. Наборы и ссылки
В API с 29.09.2026
| Действие | HTTP | Ответ |
|---|---|---|
| Наборы опроса, новые сверху | GET /quiz/{id}/unique-links |
{status, quiz_id, total, groups: Group[]} |
| Создать набор со ссылками | POST /quiz/{id}/unique-links |
{status, quiz_id, group: {...Group, created_links: Link[]}} |
| Один набор | GET /quiz/{id}/unique-links/{groupId} |
{status, quiz_id, group} |
| Изменить набор | POST /quiz/{id}/unique-links/{groupId} |
{status, quiz_id, group} |
| Прогноз нового лимита | POST /quiz/{id}/unique-links/{groupId}?dry_run=1 |
{status, quiz_id, dry_run: true, becomes_used} |
| Удалить набор со ссылками | DELETE /quiz/{id}/unique-links/{groupId} |
{status, quiz_id, group_id, deleted: true} |
| Ссылки набора по странице | GET /quiz/{id}/unique-links/{groupId}/links?page=&per_page=&search=&show= |
{status, quiz_id, links: Link[], meta} |
| Добавить ссылки | POST /quiz/{id}/unique-links/{groupId}/links |
{status, quiz_id, added, links: Link[]} |
| Изменить ссылку | POST /quiz/{id}/unique-links/links/{linkId} |
{status, quiz_id, link} |
| Включить / выключить / удалить несколько | POST /quiz/{id}/unique-links/{groupId}/links/bulk |
{status, quiz_id, affected} |
| Файл со ссылками | GET /quiz/{id}/unique-links/{groupId}/export?format=csv\|xlsx |
файл |
Тела запросов — как у кабинета:
JSON
POST /quiz/18547/unique-links
{ "name": "Филиалы", "labels": ["Казань", "Самара"], "max_uses": null }
POST /quiz/18547/unique-links/12
{ "expires_at": "2026-12-31T21:00:00Z", "password_mode": "own", "password": "секрет" }
POST /quiz/18547/unique-links/links/501
{ "own_max_uses": true, "max_uses": 3, "params": [{ "name": "dept", "value": "sales" }] }
POST /quiz/18547/unique-links/12/links/bulk
{ "action": "delete", "filter": { "search": "", "show": "no_answers" } }Изменение набора и ссылки идёт методом POST, как у остальных методов v3.
Ошибки
403{"status": false, "code": "blocked_by_tariff", "blocked_by_tariff": true, "option": "publication.unique_links"}— у тарифа нет опции уникальных ссылок: создание набора, добавление ссылок и изменение чего-либо, кромеactive. Смотреть, выгружать, включать, выключать и удалять уже выпущенное можно и без опции.422— машинный код вerrors.<field>[0]:{"message": "…", "errors": {"max_uses": ["max_uses_above_group"]}}.404{"status": false, "code": "unique_link_group_not_found"}— набора нет, он удалён или из другого опроса;unique_link_not_found— то же для ссылки;unique_link_password_not_found— нет такого своего пароля ссылки.403{"status": false, "blocked_by_access": true}— нет права.
Ответы и отчёт
- GET
/quiz/{id}/answersпринимаетunique_link_group_idиunique_link_ids[](§8, answers.md), а у каждого ответа есть полеunique_link—{id, label, group_id, group_name}илиnull. - POST
/quiz/{id}/reportпринимает те же два поля (§34, reports.md). - Сохранённый набор фильтров (POST
/quiz/{id}/filters) хранит оба ключа на любом тарифе, и выгрузки ответов по сохранённому фильтру их учитывают.
Срез работает на любом тарифе. Без unique_link_group_id список unique_link_ids не учитывается.