Входящие
Собираете вопросы и формулу. Посетитель проходит квиз и оставляет контакт.
Квиз собирается в кабинете. Посетитель открывает его по прямой ссылке, без входа.
#1 — ответ на первый вопрос, #2 — на второй. Операторы + − * / ^ ( ) и %. Запись a % b считает a × b / 100.{formula} в тексте результата заменяется посчитанным числом.{origin}/?play=ID
Ключ лежит в кабинете, в блоке «Для другого сайта». Заголовок X-Api-Key. Ключ открывает квизы этого аккаунта и не даёт ни заявок, ни редактора.
GET /api/embed/{id} — название и стартовый экран. Чужой ключ отвечает 401, чужой квиз — 404.GET /embed.js — скрипт кнопки для другого сайта.GET /?play={id} — страница прохождения. Ключ не нужен. embed=1 пропускает повторный отсчёт.GET /api/quizzes/{id}/open — публичные название и старт.POST /api/quizzes/{id}/play — шаг. Тело {"answers": {}}, а в конце ещё contacts, href и utm.POST /api/login — {"login","password"}. POST /api/logout закрывает сессию.GET /api/me — логин и ключ.GET /api/quizzes и POST /api/quizzes — список и новый квиз.GET и PUT /api/quizzes/{id} — чтение и сохранение.GET /api/quizzes/{id}/leads — заявки.Код вставляется на чужой сайт. Кнопка берёт текст из квиза. Если задана пауза, сначала идёт отсчёт, затем квиз открывается сам. Закрытие — кнопкой «Закрыть» или клавишей Escape. Адрес скрипта должен быть https: страница, открытая по https, не загружает http. Если кнопка на сайте уже есть, добавьте data-open с её селектором: квиз откроется по ней, а свою кнопку скрипт не нарисует.
<script src="{origin}/embed.js" data-key="КЛЮЧ" data-quiz="ID"></script>
<script src="{origin}/embed.js" data-key="КЛЮЧ" data-quiz="ID" data-open="a[href='#form']"></script>
Если у квиза уже задан адрес, после заявки на него один раз уходит POST с JSON. Нужен публичный http или https. Заявка при этом сохраняется в кабинете.
{
"quiz": {"id": "ID", "name": "Название"},
"answers": [{"q": "Что убираем?", "a": "Квартиру"}],
"contacts": {"name": "", "phone": "", "email": ""},
"result": {"title": "", "text": "", "cost": ""},
"extra": {"href": "", "utm": {}, "ip": ""},
"created": "2026-11-07T00:00:00Z"
}
Конструктор заявок
Входящие