# Senden API > Independent HTTP API for ordinary WhatsApp, Telegram and MAX accounts. Public site: https://api-senden.ru/ Use cases: https://api-senden.ru/use-cases Developer guide and complete HTTP catalog: https://api-senden.ru/docs Security and integration boundaries: https://api-senden.ru/security OpenAPI: https://api-senden.ru/openapi.json Machine-readable API context: https://api-senden.ru/downloads/ai-context.json Integration starter ZIP: https://api-senden.ru/downloads/starter.zip Full text: https://api-senden.ru/llms-full.txt API base: https://api-senden.ru/api/v1 Named Bearer key required for private operations. Register at https://api-senden.ru/register and sign in at https://api-senden.ru/login. GET /api/v1/integrations/manifest returns only the authenticated workspace's safe instances, connectedMessengers, permissions and the complete commands catalog. GET /methods is only a native-operation subset. Never request a password, QR, verification code, API key or session token in a public prompt. Keep keys in server-side secrets. Do not send messages, start messenger login, upload files, lease notifications or mutate settings automatically. Obtain explicit authorization for mutations. Select real chat IDs from GET /api/v1/instances/{id}/chats. For MAX, contacts.lookup currently exposes a user ID under chatId; do not treat it as a private-chat destination. Use one stable Idempotency-Key for each send or native mutation. 202/queued/submitted is not proof of delivery. Unknown outcomes must not be replayed with a new key. Capabilities differ by messenger and account state. No official messenger partnership, uptime SLA, AI model, CRM-specific module or guarantee against account restrictions is claimed. ## Scenarios ### Интеграция WhatsApp, Telegram и MAX с CRM https://api-senden.ru/use-cases/crm Заявка приходит в мессенджер, а менеджер работает в CRM. Senden API передаёт сообщения и события в вашу интеграцию, чтобы сохранить контекст клиента рядом со сделкой. - Новая заявка: Обработчик webhook или поток SSE получает событие. Ваша интеграция сопоставляет ID чата с контактом и создаёт задачу менеджеру. - Изменение этапа: CRM инициирует согласованное уведомление клиенту: запрос данных, подтверждение встречи или следующий шаг по заявке. - Документы в контексте: Счёт, предложение или PDF отправляется как файл. История и идентификаторы связываются с карточкой сделки. Готовый модуль для конкретной CRM не поставляется автоматически: связь с её API реализует ваш разработчик. Используйте реальные ID чатов и отдельный API-ключ для каждой интеграции. ### Уведомления интернет-магазина в WhatsApp, Telegram и MAX https://api-senden.ru/use-cases/ecommerce Когда статус заказа меняется, магазин может отправить покупателю понятное уведомление в согласованный канал. Senden API соединяет вашу систему заказов с подключёнными аккаунтами. - Подтверждение заказа: Ваша система формирует сообщение с номером заказа и следующими шагами. Отправка выполняется через общую очередь API. - Оплата и комплектация: Событие в учётной системе запускает уведомление или передачу счёта, инструкции либо другого документа. - Ответ покупателя: Входящее событие возвращается в обработчик магазина. Его можно передать оператору вместе с контекстом заказа. Отправляйте сообщения ожидающим их получателям. Статус queued подтверждает постановку в очередь, а не доставку; итог проверяйте по доступным событиям и истории. ### API мессенджеров для службы поддержки https://api-senden.ru/use-cases/customer-support Senden API предоставляет транспортный слой для вашей helpdesk-системы. Маршрутизацию обращений, рабочее место оператора и правила обслуживания вы выстраиваете в своём продукте. - Получить обращение: Подписанный webhook, SSE или очередь уведомлений передаёт событие в вашу систему. - Найти контекст: Система использует ID подключения и чата, получает доступную историю и связывает обращение с клиентом. - Ответить и передать: Оператор или согласованный автоматический сценарий отправляет текст и файлы. Внутренняя система распределяет задачи между сотрудниками. Полноценный командный helpdesk с назначением операторов — отдельная интеграция. Набор нативных команд и доступных статусов отличается между мессенджерами. ### Напоминания о записи через API мессенджеров https://api-senden.ru/use-cases/appointments Салон, сервисная компания, учебный центр или консультант могут связать расписание с мессенджерами. Время отправки определяет ваша система; Senden API отвечает за приём команды и обмен сообщениями. - Запись создана: Система расписания формирует подтверждение с датой, временем и местом встречи. - Напоминание по расписанию: Ваш планировщик вызывает API в нужный момент, сохраняя один Idempotency-Key для одного уведомления. - Подтверждение или перенос: Ответ клиента поступает в вашу систему через события. Сотрудник или согласованный сценарий уточняет изменения. Встроенное расписание записей не заявляется: используйте свой календарь и планировщик. Передавайте только необходимую информацию и учитывайте чувствительность данных клиента. ### Уведомления о доставке через WhatsApp, Telegram и MAX API https://api-senden.ru/use-cases/logistics Ваша система логистики знает статус отправления. Senden API позволяет доставить согласованное уведомление клиенту или сотруднику в нужный канал и принять ответ. - Статус изменился: WMS, ERP или другая система вызывает вашу интеграцию при передаче заказа в доставку или изменении этапа. - Отправить детали: Сообщение содержит понятный следующий шаг. При необходимости добавьте накладную или инструкцию в PDF. - Обработать ответ: События возвращают ответ адресата в вашу систему, где диспетчер уточняет детали. Senden API не заменяет трекинг и маршрутизацию курьеров. Не включайте в сообщения избыточные персональные данные; контролируйте доступ к ключам и журналам интеграции. ### API WhatsApp, Telegram и MAX для ИИ-ассистента https://api-senden.ru/use-cases/ai-assistants Вы выбираете модель и правила работы ассистента. Senden API передаёт сообщения, предоставляет контекст через API и принимает явно разрешённые команды ответа. - Передать событие: Ваш backend принимает входящее сообщение и передаёт модели только необходимый контекст. - Ограничить инструменты: Используйте OpenAPI, llms.txt и ai-context.json для описания команд. Держите ключ в backend, отдельно от промптов и браузера. - Контролировать ответ: Проверьте результат и бизнес-правила перед отправкой. Предусмотрите передачу диалога человеку и защиту от повторов. Встроенная языковая модель не предоставляется. Учитывайте prompt injection: содержимое входящего сообщения не должно само выдавать разрешение на отправку, доступ к данным или выполнение произвольных команд. ## HTTP commands GET /api/v1/health | Проверка процесса | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/status | Подключения и состояния | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances | Создать подключение | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/instances | Получить активные или архивные подключения | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false DELETE /api/v1/instances/{id} | Остановить и архивировать подключение с сохранением истории и сессии | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false PATCH /api/v1/instances/{id} | Изменить название подключения | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/instances/{id} | Состояние подключения | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/restore | Восстановить из архива в пределах лимитов, без автоматического подключения | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/connect | Начать вход | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/auth | Продолжить текущий шаг входа | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/stop | Остановить с сохранением сессии | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/logout | Запросить выход | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/instances/{id}/chats | Получить чаты | scope=read | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=false GET /api/v1/instances/{id}/messages | Сохранённая история сообщений | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/messages | Поставить текст или файл в очередь | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=true POST /api/v1/instances/{id}/messages/from-url | Безопасно загрузить HTTPS-файл и поставить документ в очередь | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=true GET /api/v1/instances/{id}/settings | Настройки подключения и событий | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false PUT /api/v1/instances/{id}/settings | Изменить настройки | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/instances/{id}/queue | Постоянная очередь сообщений | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/queue/clear | Отменить все queued сообщения | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/queue/{messageId}/cancel | Отменить одно queued сообщение | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/queue/{messageId}/retry | Повторить только подтверждённую ошибку failed | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/instances/{id}/notifications/stats | Число ожидающих и обработанных уведомлений | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/notifications/receive | Получить уведомление с арендой и ожиданием | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false DELETE /api/v1/instances/{id}/notifications/{receiptId} | Подтвердить обработку текущей квитанции | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/instances/{id}/deliveries | Результаты доставки webhook | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/instances/{id}/deliveries/stats | Счётчики заданий webhook | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/deliveries/clear | Отменить ожидающие, повторяемые и dead-letter webhook | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/instances/{id}/deliveries/{jobId}/attempts | Журнал попыток webhook | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/deliveries/{jobId}/retry | Повторить webhook из dead-letter | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/events | События с курсором | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/stream | Поток событий SSE | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/files | Загрузить файл до 20 МБ | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/files/{fileId} | Скачать ранее загруженный локальный файл | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false PUT /api/v1/config | Настройки приложения и сетевых подключений | scope=write | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/methods | Каталог доступных операций | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/integrations/manifest | Подключения текущего пространства, команды и готовые файлы интеграции без ключей и данных авторизации | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false GET /api/v1/integrations/files/{name} | Скачать шаблон интеграции или общий ZIP без личных данных | scope=read | messengers=whatsapp,telegram,max | activeConnection=false | idempotency=false POST /api/v1/instances/{id}/operations/account.settings.get | Профиль подключённого аккаунта | scope=read | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=false POST /api/v1/instances/{id}/operations/contacts.list | Список контактов | scope=read | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=false POST /api/v1/instances/{id}/operations/contacts.get | Информация о контакте | scope=read | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=false POST /api/v1/instances/{id}/operations/contacts.lookup | Проверить наличие аккаунта по телефону или ID | scope=read | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=false POST /api/v1/instances/{id}/operations/contacts.create | Добавить контакт | scope=write | messengers=telegram,max | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/contacts.update | Изменить контакт | scope=write | messengers=telegram | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/contacts.delete | Удалить контакт | scope=write | messengers=telegram,max | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/profile.avatar.get | Получить аватар | scope=read | messengers=whatsapp | activeConnection=true | idempotency=false POST /api/v1/instances/{id}/operations/messages.history | Загрузить историю из мессенджера | scope=read | messengers=telegram,max | activeConnection=true | idempotency=false POST /api/v1/instances/{id}/operations/messages.get | Получить сообщение из мессенджера | scope=read | messengers=telegram,max | activeConnection=true | idempotency=false POST /api/v1/instances/{id}/operations/messages.read | Отметить сообщения прочитанными | scope=write | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/messages.delete | Удалить сообщение | scope=write | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/messages.edit | Изменить текст сообщения | scope=write | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/messages.forward | Переслать выбранные сообщения | scope=write | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/messages.react | Изменить реакцию на сообщение | scope=write | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/messages.contact | Отправить карточку контакта | scope=write | messengers=whatsapp,telegram | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/messages.location | Отправить местоположение | scope=write | messengers=whatsapp,telegram | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/messages.poll | Отправить опрос | scope=write | messengers=whatsapp,telegram | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/chats.typing | Показать индикатор набора | scope=write | messengers=whatsapp,telegram | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/chats.archive | Архивировать чат | scope=write | messengers=whatsapp,telegram | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/chats.unarchive | Вернуть чат из архива | scope=write | messengers=whatsapp,telegram | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/chats.expiration | Настроить исчезающие сообщения | scope=write | messengers=whatsapp,telegram | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/chats.reactions | Получить доступные реакции | scope=read | messengers=telegram | activeConnection=true | idempotency=false POST /api/v1/instances/{id}/operations/groups.get | Информация о группе | scope=read | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=false POST /api/v1/instances/{id}/operations/groups.create | Создать группу | scope=write | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/groups.rename | Изменить название группы | scope=write | messengers=whatsapp,telegram | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/groups.members.add | Добавить участника | scope=write | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/groups.members.remove | Удалить участника | scope=write | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/groups.admins.add | Назначить администратора группы | scope=write | messengers=whatsapp | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/groups.admins.remove | Снять администратора группы | scope=write | messengers=whatsapp | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/groups.leave | Покинуть группу | scope=write | messengers=whatsapp,telegram,max | activeConnection=true | idempotency=true POST /api/v1/instances/{id}/operations/groups.settings | Изменить одно разрешение группы | scope=write | messengers=whatsapp | activeConnection=true | idempotency=true