Sendsay API: Добавить или обновить подписчика

Сценарий из mcp-everything. Актуально на 2026-10-24.

Подписка с сайта или синхронизация клиентов из CRM в Sendsay.

  1. Создай API-ключ вызовом sys.user.apikey.create — лучше на отдельный саблогин с минимальными правами. Все вызовы идут POST-запросом с JSON на https://api.sendsay.ru/general/api/v100/json/<код аккаунта>, действие задаётся полем action.
  2. Проверь доступ: action = pong — в ответе account и sublogin.
  3. Добавь контакт: action = member.set с email, addr_type = email и datakey — тройками «ключ, режим, значение». Например, ["-group.pl21586", "set", "1"] добавит контакт в список pl21586, а анкетные поля пишутся через ключи вида base.firstName.
  4. Получить данные контакта: action = member.get с email.
  5. warnings в ответе означают частичное выполнение, а не ошибку. Ответы 3xx — перенаправления, клиент должен их обрабатывать.
curl -L -X POST "https://api.sendsay.ru/general/api/v100/json/<аккаунт>" \
  -H 'Content-Type: application/json' \
  -d '{
        "action": "member.set",
        "apikey": "<API-ключ>",
        "email": "ivan@example.ru",
        "addr_type": "email",
        "datakey": [
          ["base.firstName", "set", "Иван"],
          ["-group.pl21586", "set", "1"]
        ]
      }'

Базовые URL

Авторизация

Тип: API-ключ

Рекомендуемый способ — API-ключ (создаётся вызовом sys.user.apikey.create, лучше на отдельный саблогин с минимальными правами). Ключ передаётся полем apikey в теле JSON или заголовком Authorization: sendsay apikey=... (ключ URL-кодируется). Аутентификация действует на один вызов, выход не нужен. Также поддерживаются логин с паролем (сессия), JWT, двухфакторная аутентификация и OpenID.

Методы сценария

POST /general/api/v100/json/{account} — member.set: добавление и изменение контакта

Параметр Где Тип Обяз. Описание
account path string да Код аккаунта
action body string да member.set
email body string да Адрес подписчика
addr_type body string нет Тип адреса, например email
datakey body array нет Тройки «ключ данных, режим, значение»; например -group.pl21586, set, 1 — добавить в список (0 — удалить)
obj body object нет Анкетные данные, например блок base

POST /general/api/v100/json/{account} — member.get: данные контакта

Параметр Где Тип Обяз. Описание
account path string да Код аккаунта
action body string да member.get
email body string да Адрес подписчика
addr_type body string нет Тип адреса
datakey body array нет Какие ключи данных вернуть

POST /general/api/v100/json/{account} — pong: проверка доступности и авторизации

В ответе — ping, account, sublogin, via.

Параметр Где Тип Обяз. Описание
account path string да Код аккаунта
action body string да pong

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://docs.sendsay.ru/sendsay-api/sendsay-api-guide Вся интеграция одним документом: https://mcp-everything.ru/integrations/sendsay.md