{"name":"DashaMail REST API v2","vendor":"DashaMail","industry":"communications","summary":"REST API сервиса email-рассылок DashaMail: адресные базы и подписчики, массовые рассылки (черновики, расписание, отправка), автоматизации, HTML-шаблоны, отчёты, транзакционные письма, аккаунт (баланс, отправители, домены, вебхуки) и обработка входящей почты. Только HTTPS, UTF-8 и JSON. Старый API с `?method=...` заменён адресацией по ресурсам.","docsUrl":"https://dashamail.ru/api/","coverage":{"included":[],"excluded":[]},"scenarios":[{"id":"otpravit-tranzaktsionnoe-pismo","title":"Отправить транзакционное письмо","summary":"Письма по событию: заказ оплачен, восстановление пароля, счёт.","steps":["Создай API-ключ в личном кабинете и передавай его в заголовке Authorization: Bearer <ключ>. Домен отправителя должен быть добавлен и подтверждён (DKIM, SPF), иначе письма не уйдут (код 34).","Отправь письмо: POST /v2/transactional/messages с to, from_email, subject и message (HTML) или plain_text. message_id — твой ID письма, по нему удобно искать.","Доставка асинхронная: ответ 201 с response.data.transaction_id.","Проверь статус и историю событий письма: GET /v2/transactional/messages/{transaction_id} — данные хранятся 6 месяцев.","Вложения передаются в attachments JSON-строкой с файлами в base64; файлы .php и .exe запрещены."],"code":"curl -X POST https://api.dashamail.com/v2/transactional/messages \\\n  -H \"Authorization: Bearer $DASHAMAIL_KEY\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n        \"to\": \"ivan@example.ru\",\n        \"from_email\": \"noreply@example.ru\",\n        \"from_name\": \"Магазин\",\n        \"subject\": \"Заказ №1042 оплачен\",\n        \"message\": \"<p>Спасибо! Мы начали собирать ваш заказ.</p>\",\n        \"message_id\": \"order-1042-paid\"\n      }'","language":"bash","methods":["POST /v2/transactional/messages","GET /v2/transactional/messages/{transaction_id}"]},{"id":"dobavit-podpischika-v-adresnuyu-bazu","title":"Добавить подписчика в адресную базу","summary":"Подписка с сайта или синхронизация клиентов из CRM.","steps":["Узнай ID базы: GET /v2/lists — в response.data список баз с id и описанием дополнительных полей merge_1…merge_N.","Добавь подписчика: POST /v2/lists/{list_id}/members с email и доп. полями (merge_1 — например, имя). Чтобы обновить существующего подписчика вместо ошибки 409, передай update = 1.","Для подписки с подтверждением (double opt-in) передай send_confirm — подписчик получит письмо со ссылкой.","Ответ 201 с response.data.member_id. Ошибка 10 значит, что адрес отписан, в чёрном списке или неактивен.","Проверить подписчика можно через GET /v2/lists/{list_id}/members с email."],"code":"curl -X POST https://api.dashamail.com/v2/lists/128341/members \\\n  -H \"Authorization: Bearer $DASHAMAIL_KEY\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"email\": \"ivan@example.ru\", \"merge_1\": \"Иван\", \"merge_2\": \"Москва\", \"update\": 1}'","language":"bash","methods":["GET /v2/lists","GET /v2/lists/{list_id}/members","POST /v2/lists/{list_id}/members"]},{"id":"sozdat-i-zapustit-massovuyu-rassylku","title":"Создать и запустить массовую рассылку","summary":"Письмо по адресной базе — сразу или по расписанию.","steps":["Создай черновик: POST /v2/campaigns с list_id, subject, from_email (на подтверждённом домене), from_name и html. Отправка при этом не начинается — в ответе campaign_id.","В HTML обязательно должна быть ссылка отписки с id=\"unsub_link\" (или %ОТПИСАТЬСЯ% в текстовой версии) — без неё рассылка не запустится. Также проверяются тема, отправитель и баланс.","Отправь сразу: POST /v2/campaigns/{campaign_id}/send — или запланируй: POST /v2/campaigns/{campaign_id}/schedule с delivery_time по московскому времени. allow_time_zone учтёт часовой пояс подписчика.","Отменить запланированную рассылку можно, пока письма не ушли, — через /v2/campaigns/{campaign_id}/unschedule."],"code":"CAMPAIGN=$(curl -s -X POST https://api.dashamail.com/v2/campaigns \\\n  -H \"Authorization: Bearer $DASHAMAIL_KEY\" -H 'Content-Type: application/json' \\\n  -d '{\"list_id\": 128341, \"subject\": \"Скидки выходного дня\", \"from_email\": \"news@example.ru\", \"from_name\": \"Магазин\",\n       \"html\": \"<h1>Скидка 20%</h1><p><a id=\\\"unsub_link\\\" href=\\\"#\\\">Отписаться</a></p>\", \"track_opens\": \"Y\", \"track_clicks\": \"Y\"}' \\\n  | jq -r .response.data.campaign_id)\n\ncurl -X POST \"https://api.dashamail.com/v2/campaigns/$CAMPAIGN/schedule\" \\\n  -H \"Authorization: Bearer $DASHAMAIL_KEY\" -H 'Content-Type: application/json' \\\n  -d '{\"delivery_time\": \"2026-10-26 10:00:00\", \"allow_time_zone\": true}'","language":"bash","methods":["POST /v2/campaigns","POST /v2/campaigns/{campaign_id}/schedule","POST /v2/campaigns/{campaign_id}/send"]}],"baseUrls":[{"label":"Боевой","url":"https://api.dashamail.com"},{"label":"Ресурсы","url":"/v2"}],"auth":{"type":"bearer","description":"API-ключ из личного кабинета передаётся в заголовке `Authorization: Bearer <ключ>` (схема `ApiKey` тоже принимается). Для совместимости ключ можно передать параметром `api_key` в строке запроса — менее безопасно; при заданном заголовке параметр игнорируется.","example":"curl 'https://api.dashamail.com/v2/lists' \\\n  -H 'Authorization: Bearer YOUR_API_KEY'"},"methods":[{"id":"GET /v2/lists","title":"Адресные базы","httpMethod":"GET","path":"/v2/lists","description":"В `response.data` — базы с полями `id`, `state`, `name`, `merge_1`…`merge_N` и счётчиками `count_active`, `count_unsubscribed`, `count_all` и др.","params":[{"name":"state","in":"query","type":"string","required":false,"description":"active, archived, blocked"},{"name":"limit","in":"query","type":"integer","required":false,"description":"Число баз; без него — все"},{"name":"offset","in":"query","type":"integer","required":false,"description":"Смещение (только с limit)"},{"name":"merge_json","in":"query","type":"boolean","required":false,"description":"Описания доп. полей в JSON"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /v2/lists/{list_id}/members","title":"Подписчики базы","httpMethod":"GET","path":"/v2/lists/{list_id}/members","description":"","params":[{"name":"list_id","in":"path","type":"integer","required":true,"description":"ID базы"},{"name":"start","in":"query","type":"integer","required":false,"description":"Смещение, по умолчанию 0"},{"name":"limit","in":"query","type":"integer","required":false,"description":"Число записей, по умолчанию 100"},{"name":"order","in":"query","type":"string","required":false,"description":"Сортировка поле направление, по умолчанию id asc"},{"name":"state","in":"query","type":"string","required":false,"description":"active, unsubscribed, bounced, complained, unconfirmed, inactive"},{"name":"email","in":"query","type":"string","required":false,"description":"Поиск по адресу"},{"name":"member_id","in":"query","type":"integer","required":false,"description":"Поиск по ID"},{"name":"segment_id","in":"query","type":"integer","required":false,"description":"Подписчики сегмента"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /v2/lists/{list_id}/members","title":"Добавление подписчика","httpMethod":"POST","path":"/v2/lists/{list_id}/members","description":"Ответ `201`: `response.data.member_id`.","params":[{"name":"list_id","in":"path","type":"integer","required":true,"description":"ID базы"},{"name":"email","in":"body","type":"string","required":true,"description":"Адрес подписчика"},{"name":"merge_1","in":"body","type":"string","required":false,"description":"Доп. поле 1 (аналогично merge_2…merge_N)"},{"name":"update","in":"body","type":"boolean","required":false,"description":"Обновить существующего подписчика вместо ошибки"},{"name":"update_tags","in":"body","type":"string","required":false,"description":"on — добавить метки к существующим"},{"name":"send_confirm","in":"body","type":"boolean","required":false,"description":"Отправить письмо подтверждения (double opt-in)"},{"name":"no_check","in":"body","type":"boolean","required":false,"description":"Не проверять по возвратам и не исправлять опечатки"},{"name":"state","in":"body","type":"string","required":false,"description":"Явное состояние подписчика"}],"requestExample":"curl -X POST 'https://api.dashamail.com/v2/lists/128341/members' \\\n  -H 'Authorization: Bearer YOUR_API_KEY' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n  \"email\": \"ivan@example.com\",\n  \"merge_1\": \"Иван\",\n  \"merge_2\": \"Москва\",\n  \"update\": 1\n}'","responseExample":"","docsUrl":""},{"id":"POST /v2/campaigns","title":"Создание черновика рассылки","httpMethod":"POST","path":"/v2/campaigns","description":"Ответ `201`: `campaign_id`. Отправка не начинается.","params":[{"name":"list_id","in":"body","type":"integer","required":true,"description":"ID базы (несколько — JSON-массив строкой)"},{"name":"subject","in":"body","type":"string","required":true,"description":"Тема (с подстановками)"},{"name":"from_email","in":"body","type":"string","required":true,"description":"Адрес отправителя на подтверждённом домене"},{"name":"from_name","in":"body","type":"string","required":true,"description":"Имя отправителя"},{"name":"name","in":"body","type":"string","required":false,"description":"Внутреннее название"},{"name":"html","in":"body","type":"string","required":false,"description":"HTML-версия"},{"name":"plain_text","in":"body","type":"string","required":false,"description":"Текстовая версия"},{"name":"status","in":"body","type":"string","required":false,"description":"DRAFT (по умолчанию) или TEMPLATE"},{"name":"track_opens","in":"body","type":"string","required":false,"description":"Y/N"},{"name":"track_clicks","in":"body","type":"string","required":false,"description":"Y/N"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /v2/campaigns/{campaign_id}/schedule","title":"Запланировать рассылку","httpMethod":"POST","path":"/v2/campaigns/{campaign_id}/schedule","description":"Отмена — `POST /v2/campaigns/{campaign_id}/unschedule`, пока письма не ушли. Также можно запустить через `PUT /v2/campaigns/{campaign_id}` с `status` = `MODERATING` или `SCHEDULE`.","params":[{"name":"campaign_id","in":"path","type":"integer","required":true,"description":"ID рассылки"},{"name":"delivery_time","in":"body","type":"string","required":true,"description":"YYYY-MM-DD HH:MM:SS, московское время"},{"name":"allow_time_zone","in":"body","type":"boolean","required":false,"description":"Учитывать часовой пояс подписчика"},{"name":"allow_best_time","in":"body","type":"boolean","required":false,"description":"Лучшее время отправки"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /v2/campaigns/{campaign_id}/send","title":"Отправить рассылку сейчас","httpMethod":"POST","path":"/v2/campaigns/{campaign_id}/send","description":"","params":[{"name":"campaign_id","in":"path","type":"integer","required":true,"description":"ID рассылки"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /v2/transactional/messages","title":"Транзакционное письмо","httpMethod":"POST","path":"/v2/transactional/messages","description":"Доставка асинхронная; ответ `201` с `response.data.transaction_id`.","params":[{"name":"to","in":"body","type":"string","required":true,"description":"Получатель; несколько — через запятую (каждому отдельное письмо)"},{"name":"from_email","in":"body","type":"string","required":true,"description":"Отправитель (можно заменить заголовком From в headers)"},{"name":"message","in":"body","type":"string","required":false,"description":"HTML; нужен он или plain_text"},{"name":"plain_text","in":"body","type":"string","required":false,"description":"Текстовая версия"},{"name":"from_name","in":"body","type":"string","required":false,"description":"Имя отправителя"},{"name":"subject","in":"body","type":"string","required":false,"description":"Тема"},{"name":"message_id","in":"body","type":"string","required":false,"description":"Свой ID письма"},{"name":"cc","in":"body","type":"string","required":false,"description":"Копия"},{"name":"bcc","in":"body","type":"string","required":false,"description":"Скрытая копия"},{"name":"headers","in":"body","type":"string","required":false,"description":"Заголовки (JSON-строка)"},{"name":"attachments","in":"body","type":"string","required":false,"description":"Вложения в base64 (JSON-строка); .php, .exe запрещены"},{"name":"inline","in":"body","type":"string","required":false,"description":"Встраиваемые изображения (JPEG, PNG, GIF), ссылка cid:"},{"name":"delivery_time","in":"body","type":"integer","required":false,"description":"Отложенная отправка, timestamp"}],"requestExample":"curl -X POST 'https://api.dashamail.com/v2/transactional/messages' \\\n  -H 'Authorization: Bearer YOUR_API_KEY' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"to\": \"ivan@example.com\", \"from_email\": \"noreply@example.ru\", \"subject\": \"Заказ №1024 оплачен\", \"message\": \"<p>...</p>\", \"message_id\": \"order-1024-paid\"}'","responseExample":"","docsUrl":""},{"id":"GET /v2/transactional/messages/{transaction_id}","title":"Статус транзакционного письма","httpMethod":"GET","path":"/v2/transactional/messages/{transaction_id}","description":"Статус и история событий доступны за последние 6 месяцев.","params":[{"name":"transaction_id","in":"path","type":"string","required":true,"description":"ID письма"}],"requestExample":"","responseExample":"","docsUrl":""}],"codeExamples":[],"errors":[{"code":"2","description":"401 — ключ неверный или не принят"},{"code":"3","description":"422 — не заданы обязательные параметры"},{"code":"7","description":"409 — email уже есть в базе (используйте update: 1)"},{"code":"10","description":"409 — подписчик отписан, в чёрном списке или неактивен"},{"code":"58","description":"429 — превышен лимит запросов"},{"code":"62","description":"403 — ключу не хватает права (details.required_scope)"},{"code":"63","description":"429 — исчерпан лимит тестовых писем"},{"code":"65","description":"403 — у субаккаунта нет права на операцию"},{"code":"66","description":"500 — сбой на стороне сервиса"},{"code":"67","description":"422 — данные не прошли проверку"},{"code":"101","description":"Некорректный формат запроса"},{"code":"999","description":"404 — неизвестный метод или ресурс"}],"limits":"- Тестовые письма: 12 на рассылку и 25 в сутки на аккаунт.\n- Числовые лимиты частоты запросов в документации не указаны; при превышении — код 58.","gotchas":["Перед запуском рассылки проверяются тема, отправитель, наличие HTML или текста, ссылка отписки (`id=\"unsub_link\"` в HTML или `%ОТПИСАТЬСЯ%` в тексте) и баланс.","Домен `from_email` должен быть добавлен и подтверждён (DKIM, SPF), иначе письма не уйдут (код 34).","Ответы — JSON с `response.data`; журнал и статистика транзакционных писем — `GET /v2/transactional/log` и `GET /v2/transactional/stats`.","Разделы API: `/lists`, `/campaigns`, `/automations`, `/templates`, `/reports`, `/transactional`, `/account`, `/router`."],"slug":"dashamail","version":2,"updatedAt":"2026-10-24T17:05:32.733Z","sources":[{"title":"REST API v2 — введение","url":"https://dashamail.ru/api/","kind":"research","addedAt":"2026-10-17T07:38:06.083Z"},{"title":"Аутентификация","url":"https://dashamail.ru/api/auth/","kind":"research","addedAt":"2026-10-17T07:38:06.083Z"},{"title":"Адресные базы","url":"https://dashamail.ru/api/lists/","kind":"research","addedAt":"2026-10-17T07:38:06.083Z"},{"title":"Рассылки","url":"https://dashamail.ru/api/campaigns/","kind":"research","addedAt":"2026-10-17T07:38:06.083Z"},{"title":"Транзакционные письма","url":"https://dashamail.ru/api/transactional/","kind":"research","addedAt":"2026-10-17T07:38:06.083Z"},{"title":"Коды ошибок","url":"https://dashamail.ru/api/errors/","kind":"research","addedAt":"2026-10-17T07:38:06.083Z"},{"title":"Вставленный текст","url":"","kind":"import","addedAt":"2026-10-17T07:38:06.083Z"},{"title":"scenarios-dashamail.md","url":"","kind":"import","addedAt":"2026-10-24T17:05:24.305Z"}],"logoUrl":null}