Zapnoty — Управление проектом

Документация API

REST API для уведомлений через Telegram и Max. Подписчики, OTP, рассылки, формы, helpdesk.

Управление через API

API для управления шаблонами, разрешениями, тегами и вебхуком проекта. Все эндпоинты требуют Bearer-токен.

Шаблоны

GET /v1/templates — список шаблонов
POST /v1/templates — создать шаблон (key, text, format?)
PUT /v1/templates/{key} — обновить шаблон (text?, format?)
DELETE /v1/templates/{key} — удалить шаблон

Разрешения

GET /v1/permissions — список разрешений
POST /v1/permissions — создать (key, title, description?, required?)
PUT /v1/permissions/{key} — обновить (title?, description?, required?)

Удаление разрешений доступно только в дашборде.

Теги

GET /v1/tags — список тегов проекта
POST /v1/tags — создать тег (name)
PUT /v1/tags/{name} — переименовать тег (new_name)
DELETE /v1/tags/{name} — удалить тег (удаляется и у всех подписчиков)

Допустимые символы: буквы, цифры, - и _. Максимум 20 тегов.

Sender-настройки

Sender-настройки проекта — имя и описание отправителя (подпись сообщений), OTP-шаблон, автосообщения при подписке/отписке, тексты авторизации (сообщение + кнопка). Управляются через API или дашборд (Overview → Уведомления или Settings → Notifications).

Формат подписи: текст\n\n— Имя\nОписание

Логотип: загружается через дашборд, сжимается до 256×256 PNG.

GET /v1/sender — получить настройки
PUT /v1/sender — обновить настройки

Поля: sender_name, sender_description, otp_template, subscribe_message, unsubscribe_message ({"ru":"...","en":"..."}), subscribe_message_enabled, unsubscribe_message_enabled (boolean), auth_text (мультиязычный, должен содержать {{url}}, ≤500 символов), auth_button_text (мультиязычный, ≤32 символа). Все поля опциональны. Автосообщения и тексты авторизации мультиязычны (RU/EN); если флаг автосообщения выключен — отправляется стандартный текст.

OTP-шаблон

Кастомный шаблон OTP-сообщения. Должен содержать {{code}}. Можно использовать {{minutes}} для срока действия.

Пример: Ваш код подтверждения: {{code}}. Действует {{minutes}} мин.

Вебхук

GET /v1/webhooks — список webhook-эндпоинтов (до 5 на проект)
POST /v1/webhooks — создать эндпоинт (url, events?[], description?)
PUT/DELETE /v1/webhooks/{id} — обновить или удалить эндпоинт
POST /v1/webhooks/{id}/rotate-secret — ротация секрета

Пустой events — подписка на все события. Secret возвращается один раз при создании и ротации. Подробнее — в разделе «Вебхуки».

API vs Дашборд

Что можно автоматизировать через REST API, а что доступно только в дашборде.

Доступно через API

Отправка уведомлений — POST /v1/send (персональные, по subscriber_id, с медиа, кнопками, шаблонами)

Batch-отправка — POST /v1/send/batch (массовая отправка списком получателей)

OTP-коды — POST /v1/otp/send и /v1/otp/verify

Массовые рассылки — POST /v1/broadcast, GET /v1/broadcast/:job_id

Подписчики — GET /v1/subscribers, PUT /v1/subscribers/:id/tags

Шаблоны — полный CRUD: GET/POST /v1/templates, PUT/DELETE /v1/templates/{key}

Разрешения — GET/POST /v1/permissions, PUT /v1/permissions/{key}

Теги — полный CRUD: GET/POST /v1/tags, PUT/DELETE /v1/tags/{name}

Планировщик — отложенные сообщения, drip-цепочки, повторяющиеся рассылки: CRUD /v1/scheduled, /v1/drip-chains, /v1/recurring

События — POST /v1/events/track (триггеры для event-drip цепочек)

Вебхук — CRUD эндпоинтов /v1/webhooks, ротация /v1/webhooks/{id}/rotate-secret

Auth через ботов — GET /v1/auth/link, POST /v1/auth/session, POST /v1/auth/verify, GET статус сессии

Helpdesk — создание тикетов, ответы, смена статуса, назначение, приоритет, типы обращений

Конфигурация Helpdesk — PUT /v1/helpdesk/settings (включение, SLA, CSAT), GET /v1/helpdesk/sla, CRUD типов обращений, готовых ответов и правил маршрутизации

Формы — GET/POST /v1/forms, CRUD форм и маршрутов доставки, чтение заявок GET /v1/forms/{id}/submissions

Sender-настройки — GET/PUT /v1/sender (имя и описание отправителя, OTP-шаблон, авто-сообщения подписки/отписки, тексты авторизации: сообщение + кнопка)

Custom Bots — команды и брендинг: /v1/custom-bot-commands, /v1/custom-settings (welcome, акцентный цвет)

Журнал аудита — GET /v1/audit

Только через дашборд

Создание проекта — регистрация и создание проектов только через UI

API-ключ — генерация и перегенерация ключа (требует OTP-подтверждение)

Удаление проекта — с OTP-подтверждением через мессенджер

Custom Bots — подключение своего бота (ввод токена). Команды и брендинг — доступны через API

Команда — управление участниками, ролями, передача проекта

Логотип — загрузка и удаление логотипа проекта

Настройки Auth — callback URL, origin URL, текст кнопки авторизации

Удаление разрешений — DELETE permissions доступен только в дашборде

Аналитика — статистика проекта, журнал доставок, аналитика рассылок

QR-коды — генерация QR-кодов для подписки со стилями и логотипом

Список выше относится к боевому ключу zn_live_ — он имеет полный доступ ко всем /v1/* эндпоинтам. Тестовый ключ zn_test_ ограничен: чтение (GET) и runtime-операции в sandbox (отправка, OTP, broadcast, simulate-event), а любой запрос на изменение настроек проекта он отклоняет с кодом 403 — настройки делаются боевым ключом (см. раздел «Тестирование»). Тот же набор операций доступен AI-агентам через MCP-сервер (см. раздел «MCP-сервер»). Дашборд работает через JWT-сессию после OAuth авторизации (Яндекс/VK).

Связанные разделы