Методы API
Справочник API Sender: адрес, авторизация, формат запросов и ответов, все методы с параметрами и коды ошибок.
Адрес и авторизация
- Адрес:
POST https://getsender.io/api/ext/<раздел>/<метод>, например…/api/ext/subscribers/add. Принимаются только запросы POST. - Ключ
snd_…— в заголовкеAuthorization: Bearer snd_…или параметромaccess_tokenв теле запроса. Не пишите ключ в адресе запроса (?access_token=): так он легче утекает. group_idможно не передавать: ключ уже привязан к одному каналу.- Не больше 20 запросов в секунду на ключ.
Формат
- Тело запроса — обычная форма (
application/x-www-form-urlencodedилиmultipart/form-data) или JSON с заголовкомContent-Type: application/json. - Списки ID — через запятую (
vk_user_id=1,2,3), массивом в JSON или повторомvk_user_id[]=…. В одном вызове — не больше 100 ID. vk_user_id— ID человека в этом канале: во ВКонтакте — ID страницы, в Telegram и МАКС — ID пользователя (его можно скопировать в списке подписчиков: меню строки «Ещё» → «Скопировать ID»).- Ответ приходит в формате JSON, обычно с кодом HTTP 200 — даже при ошибке, поэтому смотрите на поле
success. Успех —"success": trueи данные. Ошибка —"success": false,error_codeиerror_message.
Подписчики
| Метод | Что делает | Параметры |
|---|---|---|
subscribers/add | добавляет человека в базу, а с subscription_id — подписывает на группу подписчиков | vk_user_id — обязательно, до 100; subscription_id — группа; utm_id — номер метки; utm_source, utm_medium, utm_campaign, utm_content, utm_term |
subscribers/del | отписывает от группы, а без subscription_id — от всех групп, статус станет «Неактивен» | vk_user_id — обязательно; subscription_id |
subscribers/get | список подписчиков по условиям | см. ниже |
subscribers/count | сколько подписчиков | subscription_id — посчитать в группах |
Если у группы подписчиков настроены боты после подписки, subscribers/add их запустит — как при обычной подписке. Если кто-то из списка не разрешил сообщения, придёт ошибка 4: люди до него в списке уже будут подписаны, остальные — нет.
Условия subscribers/get (utm_id здесь и выше — номер метки, он виден в адресе страницы подписчиков с этой меткой: tag_id=3):
vk_user_id— эти люди (так проверяют, подписан ли человек);subscription_id/ignore_subscription_id— подписан / не подписан на группы;utm_id/ignore_utm_id— есть / нет метки;delivery_id,ignore_delivery_id,read_delivery_id,error_delivery_id— получил рассылку, не получил, прочитал, получил с ошибкой;lead_status—1только активные, другое значение — неактивные;var_nameиvar_value— есть переменная (с этим значением);count— сколько вернуть, до 100;offset_id— для следующей страницы передайтеoffset_idиз прошлого ответа.
В ответе — items: у каждого vk_user_id, subscriber_id, имя, фото, date (первое появление, ДД.ММ.ГГГГ ЧЧ:ММ:СС, время UTC), lead_status (1 — активен, 2 — нет), ignore (1 — в чёрном списке), subscriptions (действующие подписки на группы и их даты), utms (метки), utm (UTM-метки) и vars (переменные).
Боты
| Метод | Что делает | Параметры |
|---|---|---|
bots/get | список ботов канала: bot_id, название, active (1 — бот включён), published (1 — неопубликованных правок нет) | — |
bots/getSteps | шаги бота: step_id, название, тип | bot_id |
bots/addSubscriber | запускает человеку бота | vk_user_id, bot_id — обязательно; step_id — с какого шага; enforce=1 — заново, даже если уже проходил |
bots/delSubscriber | останавливает бота у человека | vk_user_id, bot_id |
Бот должен быть включён и опубликован, а человек — активен. Иначе Sender ответит {"success": true}, но бот не запустится. Того, кто уже проходит бота или прошёл его, bots/addSubscriber без enforce=1 и step_id заново не запускает.
Переменные
| Метод | Что делает | Параметры |
|---|---|---|
vars/get | переменные подписчика | vk_user_id; name — одна переменная |
vars/set | записывает переменную подписчика | vk_user_id, name, value |
vars/del | удаляет переменную подписчика | vk_user_id, name |
vars_global/get | глобальные переменные канала | name — одна переменная |
vars_global/set | записывает глобальную переменную | name, value |
vars_global/del | удаляет глобальную переменную | name |
Имя переменной — латинские буквы, цифры и «_», до 40 символов; заглавные буквы Sender сам делает строчными. Подробнее о переменных — Переменные.
Справочники
| Метод | Что возвращает |
|---|---|
subscriptions/get | группы подписчиков канала: subscription_id, name, title, subscribers_count |
groups/get | сам канал: group_id, название, type_id (1 — ВКонтакте, 2 — Telegram, 3 — МАКС), фото |
Пример ответа subscribers/get:
{"success": true, "offset_id": 5012, "items": [
{"vk_user_id": 123456, "subscriber_id": 5012, "first_name": "Анна", "last_name": "Петрова",
"photo": "https://…", "date": "12.10.2026 09:15:00", "lead_status": 1, "ignore": 0,
"subscriptions": [{"subscription_id": 12, "date": "12.10.2026 09:15:00", "source": "api"}],
"utms": [{"utm_id": 3}],
"utm": {"utm_source": "vk", "utm_medium": null, "utm_campaign": null, "utm_content": null, "utm_term": null},
"vars": [{"n": "tariff", "v": "pro"}]}
]}Коды ошибок
| Код | Что значит | Что делать |
|---|---|---|
| 1 | нет обязательного параметра | проверьте, что передали vk_user_id, bot_id или name |
| 4 | человек не разрешил отправку сообщений | во ВКонтакте он должен разрешить сообщения сообществу, в Telegram и МАКС — запустить бота и не блокировать его |
| 5 | человек не найден в базе канала | сначала добавьте его через subscribers/add |
| 6 | канал не найден | ключ от другого канала или неверный group_id |
| 7 | группа подписчиков не найдена | проверьте subscription_id через subscriptions/get |
| 9 | слишком много запросов | не больше 20 в секунду на ключ; после 60 запросов с неверным ключом за минуту с одного адреса Sender отвечает этой ошибкой, пока минута не пройдёт, — сколько ждать, сказано в тексте ошибки |
| 10 | бот не найден | проверьте bot_id через bots/get |
| 11 | неверное имя переменной | только латинские буквы, цифры и «_», до 40 символов |
| 12 | неверное значение параметра | например, не число или больше 100 ID за раз |
| 14 | недействительный ключ | ключ отозван или скопирован не целиком |
| 15 | канал недоступен | канал отключён или заблокирован, либо проект заблокирован или удаляется — причина в тексте ошибки |
| 100 | неизвестный метод | проверьте раздел и метод в адресе |
Частые вопросы
Как проверить, подписан ли человек на группу?
Вызовите subscribers/get с vk_user_id и subscription_id. Пустой items — не подписан.
Как отправить человеку сообщение через API?
Сделайте бота с нужным сообщением и запустите его методом bots/addSubscriber. Текст можно заранее положить в переменную через vars/set и подставить в сообщение бота.