One API — instant delivery to Telegram and Max. Notifications, OTP codes, mass broadcasts. Free to start.
curl -X POST https://api.zapnoty.com/v1/send \
-H "Authorization: Bearer zn_aBcDeFgH..." \
-H "Content-Type: application/json" \
-d '{
"subscriber_id": "550e8400-...",
"text": "Order #1042 shipped!",
"buttons": [[{"text": "Track", "url": "https://..."}]]
}'Features
Telegram and Max through a single interface. Subscribers choose the channel, you send the same way.
Verification codes via messenger. Cheaper than SMS, instant delivery, attempt control. Custom template with {{code}}.
Mass delivery through a queue. Track status, sent/failed in real time.
OAuth user authentication via Telegram and Max. Static links, API sessions with state, QR-polling for cross-device.
Built-in ticket system. Customers message the bot — you reply via API or dashboard. SLA timers, statuses, webhooks.
Bot responds in subscriber's language. Built-in ru/en locales, switch via /lang.
Delayed messages, automatic drip chains on subscription, and recurring broadcasts on schedule
Notification types at the project level. Subscribers control what they receive.
Link like t.me/bot?start=proj_SLUG. One-click subscription with subscriber_id binding.
Photos, videos, documents. Inline buttons with URL or callback_data. Up to 3 rows of 3 buttons.
Create a template with variables: {{order_id}}. Reuse without duplicating text.
12 event types: subscriptions, delivery, broadcasts, buttons, auth, helpdesk. HMAC-SHA256 signature. Configure via dashboard or API.
Text formatting: bold, italic, code, links. Support for plain, markdown, and html formats.
Signature with name, description, and logo. Auto-messages on subscribe and unsubscribe in two languages.
Sending statistics: total, failed, by channel, by day for 30 days.
Predefined tags for segmentation. CRUD via dashboard and API, up to 20 per project.
API
Bearer token, JSON in/out. A handful of endpoints cover all scenarios.
How it works
Sign up with Yandex or VK, create a project and get an API key.
Send users a deep link. They subscribe in one click via Telegram or Max bot.
One HTTP request with a Bearer token — and the notification is delivered instantly.
No credit card required. First 1,000 notifications per month free. Integrate in 5 minutes.
curl -X POST /v1/send
-H "Authorization: Bearer zn_..."
-d {"text": "Hello!"}FAQ
Yes, subscribers need Telegram or Max. They follow a deep link, tap Start in the bot — and they're subscribed. No sign-up or extra apps required.
First 1,000 notifications per month are free. No credit card required. Paid plans for higher volumes coming soon.
Notifications are delivered via messengers, not SMS. It's free for senders, instant, and supports buttons, media, and formatting. SMS costs money and is limited to plain text.
The /stop command in the bot unsubscribes from all projects. Subscribers can also manage subscriptions via /settings.
Yes, the API works globally. Server is in Russia, but you can send notifications to subscribers in any country where Telegram or Max is available.
Yes. You can send inline buttons with URL or callback_data, as well as images, videos, and documents via the media field.
POST /v1/otp/send generates a 6-digit code and sends it to the subscriber. POST /v1/otp/verify checks the entered code. Built-in brute-force protection: max 5 attempts, 5-minute TTL.
Yes. The limit is 300 requests per minute per project. Exceeding it returns 429 with a Retry-After header and retryable: true in JSON. All API errors include a retryable field to help decide whether to retry.
Yes. The Management API provides CRUD operations for templates, permissions, tags, and webhook. Similar to setWebhook in Telegram Bot API. See the "Management (API)" section in the docs.
The user clicks a bot link → confirms login in the messenger → automatically subscribes to notifications → your server receives user data (name, username, subscriber_id). Three options: static link, API session with state, QR-polling for cross-device. See the "User Auth" section in the docs.
Helpdesk is a built-in ticket support system. Customers message the bot — a ticket is created and the user is automatically subscribed to notifications. You reply via API (POST /v1/helpdesk/tickets/{id}/reply) or dashboard. Includes statuses (new, in_progress, waiting, closed), ticket types (Bug, Suggestion, Question, Finance — customizable), SLA timers, and webhook events. Supports virtual channel for tickets from website/app users without a messenger — replies are delivered via webhook. Enable in project settings.
Yes! Zapnoty supports three types: scheduled send (specific date/time), drip chains on subscription, and recurring broadcasts (every N hours).