API Documentation

REST API for notifications via Telegram and Max. Subscribers, OTP, broadcasts, forms, helpdesk.

Management API

API for managing templates, permissions, tags, and webhook. All endpoints require a Bearer token.

Templates

GET /v1/templates — list templates
POST /v1/templates — create template (key, text, format?)
PUT /v1/templates/{key} — update template (text?, format?)
DELETE /v1/templates/{key} — delete template

Permissions

GET /v1/permissions — list permissions
POST /v1/permissions — create (key, title, description?, required?)
PUT /v1/permissions/{key} — update (title?, description?, required?)

Deleting permissions is only available in the dashboard.

Tags

GET /v1/tags — list project tags
POST /v1/tags — create tag (name)
PUT /v1/tags/{name} — rename tag (new_name)
DELETE /v1/tags/{name} — delete tag (also removed from all subscribers)

Allowed characters: letters, numbers, - and _. Maximum 20 tags.

Sender signature

Each message can include a signature — sender name and description. Configured in the dashboard (Overview → Notifications or Settings → Notifications).

Signature format: text\n\n— Name\nDescription

Logo: uploaded via dashboard, resized to 256×256 PNG.

Auto-messages

Manage auto-messages on subscribe/unsubscribe via API. Each message is toggled independently and supports two languages (RU/EN). Project signature is appended automatically.

GET /v1/auto-messages — get settings
PUT /v1/auto-messages — update settings

Fields: subscribe_message_enabled, unsubscribe_message_enabled (boolean), subscribe_message, unsubscribe_message ({"ru":"...","en":"..."}). When disabled, default text is sent.

OTP template

Custom OTP message template. Must contain {{code}}. You can also use {{minutes}} for expiry time.

Example: Your verification code: {{code}}. Valid for {{minutes}} min.

Webhook

GET /v1/webhook — get current webhook
PUT /v1/webhook — set webhook (url, events?[])
DELETE /v1/webhook — delete webhook

If events is not specified — all events will be sent. Secret is generated automatically.

API vs Dashboard

What you can automate via REST API and what is only available in the dashboard.

Available via API

Send notifications — POST /v1/send (personal, by subscriber_id, with media, buttons, templates)

OTP codes — POST /v1/otp/send and /v1/otp/verify

Mass broadcasts — POST /v1/broadcast, GET /v1/broadcast/:job_id

Subscribers — GET /v1/subscribers, PUT /v1/subscribers/:id/tags

Templates — full CRUD: GET/POST /v1/templates, PUT/DELETE /v1/templates/{key}

Permissions — GET/POST /v1/permissions, PUT /v1/permissions/{key}

Tags — full CRUD: GET/POST /v1/tags, PUT/DELETE /v1/tags/{name}

Webhook — GET/PUT/DELETE /v1/webhook

Bot Auth — GET /v1/auth/link, POST /v1/auth/session, POST /v1/auth/verify, GET session status

Helpdesk — create tickets, reply, change status, assign, set priority, ticket types

Auto-messages — GET/PUT /v1/auto-messages (enable/disable, texts in two languages)

Analytics — GET /api/projects/:id/analytics (via JWT dashboard session)

Dashboard only

Create project — registration and project creation only via UI

API key — generate and regenerate key (requires OTP confirmation)

Delete project — with OTP confirmation via messenger

Sender signature — configure name and description (Settings → Notifications)

Logo — upload and delete project logo

OTP template — multilingual template with HTML formatting and preview

Auth settings — callback URL, origin URL, authorization button text

Enable Helpdesk — activate ticket module in project settings

SLA timers — configure first response and resolution deadlines

Delete permissions — DELETE permissions is only available in the dashboard

QR codes — generate subscription QR codes with styles and logo

API key (Bearer zn_...) is used for all /v1/* endpoints. Dashboard works via JWT session after OAuth (Yandex/VK).

Related sections