DashaMail REST API v2: Добавить подписчика в адресную базу

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

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

  1. Узнай ID базы: GET /v2/lists — в response.data список баз с id и описанием дополнительных полей merge_1…merge_N.
  2. Добавь подписчика: POST /v2/lists/{list_id}/members с email и доп. полями (merge_1 — например, имя). Чтобы обновить существующего подписчика вместо ошибки 409, передай update = 1.
  3. Для подписки с подтверждением (double opt-in) передай send_confirm — подписчик получит письмо со ссылкой.
  4. Ответ 201 с response.data.member_id. Ошибка 10 значит, что адрес отписан, в чёрном списке или неактивен.
  5. Проверить подписчика можно через GET /v2/lists/{list_id}/members с email.
curl -X POST https://api.dashamail.com/v2/lists/128341/members \
  -H "Authorization: Bearer $DASHAMAIL_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"email": "ivan@example.ru", "merge_1": "Иван", "merge_2": "Москва", "update": 1}'

Базовые URL

Авторизация

Тип: Bearer-токен

API-ключ из личного кабинета передаётся в заголовке Authorization: Bearer <ключ> (схема ApiKey тоже принимается). Для совместимости ключ можно передать параметром api_key в строке запроса — менее безопасно; при заданном заголовке параметр игнорируется.

curl 'https://api.dashamail.com/v2/lists' \
  -H 'Authorization: Bearer YOUR_API_KEY'

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

GET /v2/lists — Адресные базы

В response.data — базы с полями id, state, name, merge_1…merge_N и счётчиками count_active, count_unsubscribed, count_all и др.

Параметр Где Тип Обяз. Описание
state query string нет active, archived, blocked
limit query integer нет Число баз; без него — все
offset query integer нет Смещение (только с limit)
merge_json query boolean нет Описания доп. полей в JSON

GET /v2/lists/{list_id}/members — Подписчики базы

Параметр Где Тип Обяз. Описание
list_id path integer да ID базы
start query integer нет Смещение, по умолчанию 0
limit query integer нет Число записей, по умолчанию 100
order query string нет Сортировка поле направление, по умолчанию id asc
state query string нет active, unsubscribed, bounced, complained, unconfirmed, inactive
email query string нет Поиск по адресу
member_id query integer нет Поиск по ID
segment_id query integer нет Подписчики сегмента

POST /v2/lists/{list_id}/members — Добавление подписчика

Ответ 201: response.data.member_id.

Параметр Где Тип Обяз. Описание
list_id path integer да ID базы
email body string да Адрес подписчика
merge_1 body string нет Доп. поле 1 (аналогично merge_2…merge_N)
update body boolean нет Обновить существующего подписчика вместо ошибки
update_tags body string нет on — добавить метки к существующим
send_confirm body boolean нет Отправить письмо подтверждения (double opt-in)
no_check body boolean нет Не проверять по возвратам и не исправлять опечатки
state body string нет Явное состояние подписчика

Пример запроса:

curl -X POST 'https://api.dashamail.com/v2/lists/128341/members' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "email": "ivan@example.com",
  "merge_1": "Иван",
  "merge_2": "Москва",
  "update": 1
}'

Нюансы

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


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