Документация для разработчиков

Рассылки

Создание, отправка и расписание массовых рассылок.

Это методы предыдущей версии API. Они работают и отключаться не будут, но новые интеграции лучше писать на REST API v2.

campaigns.get #

GET ?method=campaigns.get

Получаем список рассылок пользователя

Параметры

ПараметрТипОписание
campaign_idintid запрашиваемой рассылки
statusstring{DRAFT, SCHEDULE, MODERATING, CREATED, PROCESSING, SENT, BLOCKED, SUBSCRIBE, BLOCKED-SPAM, NEED-FIX} - статус рассылки
list_idintфильтр рассылок по адресным базам
workflowintID автоматизации/потока для получения списка рассылок, содержащихся в нем
member_idintв случае передачи в даннном параметре id подписчика вместе с campaign_id в результатах текстовой версии (plain_text) и html будут подставлены все теги персонализации, а также динамический контент для данного подписчика
startdateфильтр рассылок по времени, начальная дата, формат: YYYY-MM-DD
end dateфильтр рассылок по времени, конечная дата, формат: YYYY-MM-DD
typestring{online_builder, html} - тип кампании (онлайн-редактор, html-шаблон)
limitintколичество записей для вывода. по-умолчанию: без ограничений

Что возвращается

Массив подписчиков с параметрами.

ПолеОписание
idid рассылки
external_campaign_idвнешний id рассылки
channelканал рассылки. возможные значения: email, sms, viber, whatsapp, telegram, notify, push, webpush
typeтип рассылки. возможные значения: online_builder, html.
status{DRAFT, SCHEDULE, MODERATING, CREATED, PROCESSING, SENT, BLOCKED} - статус рассылки
nameназвание рассылки
list_idid адресной базы, по которой была отправлена рассылка.
subjectзаголовок письма
from_nameот кого письмо?
from_emailобратный адрес
personalizeToEmail{on/off} - включить/выключить персонализацию в поле "Кому:"
to_emailперсонализация в поле "Кому:" [можно использовать %ТЭГИ% из дополнительных полей базы, например %EMAIL%]
track_opens{Y,N} - следить за открыванием
track_clicks{Y,N} - отслеживать клики
plain_clicks{Y,N} - отслеживать клики в текстовой версии
analytics{google,N} - добавить Yandex.Метрике для отслеживания всех URLs
analytics_tagтекстовый тег, как рассылка будет отображаться в Yandex.Метрике
analytics_sourceutm_source для отображения кликов в Yandex.Метрике
analytics_mediumutm_medium для отображения кликов в Yandex.Метрике
analytics_contentutm_content для отображения кликов в Yandex.Метрике
analytics_termutm_term для отображения кликов в Yandex.Метрике
htmlкод html-версии письма
plain_textтекстовая версия письма
delivery_timeвремя отправки рассылки
autoстатус для авторассылки (0 - не активна, 1 - активна, 2 - в архиве)
limitлимит отправки писем на рассылку или, в случае задания wait_time для плавной отправки, на временной период
wait_timeвременной период в секундах для ожидания перед отправкой следующей части отправкой частями
allow_time_zone{Y,N} - учитывать локальное время подписчика при запланированной на определенное время отправке
allow_best_time{Y,N} - оптимизировать время получения письма, функция "лучшее время доставки"
emails_sentобщее число отправленных писем в рамках этой рассылки
curl 'https://api.dashamail.com/?method=campaigns.get&api_key=YOUR_API_KEY'
<?php
$url = 'https://api.dashamail.com/?' . http_build_query([
    'method' => 'campaigns.get',
    'api_key' => 'YOUR_API_KEY',
]);

$response = json_decode(file_get_contents($url), true);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.get(
    'https://api.dashamail.com/',
    params={
        'method': 'campaigns.get',
        'api_key': 'YOUR_API_KEY',
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const params = new URLSearchParams({
  "method": "campaigns.get",
  "api_key": "YOUR_API_KEY"
});

const response = await fetch(`https://api.dashamail.com/?${params}`);
const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.create #

POST ?method=campaigns.create

Создаем рассылку.

Параметры

ПараметрТипОписание
list_id обязательныйserialized arrayиндексный массив адресных баз, по которым будет создана рассылка. Структура: порядковый номер (от нуля) => id базы. Массив можно передавать в сериализованном виде или в формате json.
namestringназвание рассылки
subjectstringзаголовок письма [должно соответствовать содержанию письма и не отталкивать]
from_namestringот кого письмо? [используйте что-нибудь запоминающееся, например, название вашей компании]
from_emailstringобратный адрес [ответы ваших подписчиков будут приходить на этот адрес]
personalizeToEmailstring{on/off} - включить/выключить персонализацию в поле "Кому:" [default: off]
to_emailstringперсонализация в поле "Кому:" [можно использовать %ТЭГИ% из дополнительных полей базы, например %EMAIL%]
track_opensstring{Y,N} - следить за открыванием [default: Y]
track_clicksstring{Y,N} - отслеживать клики [default: Y]
plain_clicksstring{Y,N} - отслеживать клики в текстовой версии [default: N]
no_images_addstring{0,1} - не прикладывать картинки к письму. [default: 0] - по умолчанию прикладываются. помогает проходить спам-фильтры и отображает картинки даже у тех получателей, у кого они по умолчанию отключены
analyticsstring{google,N} - добавить Google Analytics™ для отслеживания всех URLs [default: N]
analytics_tagstringтекстовый тег, как рассылка будет отображаться в Google Analytics™, например: Рассылка_9_17_2011
htmlstringкод html-версии письма. Либо id сохраненного html-шаблона. Либо сохраненный шаблон из ЛК (из раздела Шаблоны) в формате tmpl1234, где 1234 это id шаблона
plain_textstringтекстовая версия письма
esegmentserialized arrayсегменты баз для рассылки. Структура массива: id базы => массив сегмента. Структура массивов сегмента: [match] = {any|all} - должны выполняться все или любые из условия. [c] - массив условий. Содержит поля: [field] - тип поля (email, merge_{1..10}), [op] - условие {is, is not, contains, notcontain, starts, ends, greater, less}, [value] - значение поля. Например: array['match']='any';array['c'][0]['field']='email';array['c'][0]['op']='is';array['c'][0]['value']='support@dashamail.ru'; Массив можно передавать в сериализованном виде или в формате json.

Что возвращается

id созданной рассылки

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.create",
  "api_key": "YOUR_API_KEY",
  "list_id": 128341
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.create',
        'api_key' => 'YOUR_API_KEY',
        'list_id' => 128341,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.create',
        'api_key': 'YOUR_API_KEY',
        'list_id': 128341,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.create",
  "api_key": "YOUR_API_KEY",
  "list_id": 128341
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.create_auto #

POST ?method=campaigns.create_auto

Создаем авторассылку.

Параметры

ПараметрТипОписание
list_idserialized arrayиндексный массив адресных баз, на события в которых будет реагировать авторассылка. Структура: порядковый номер (от нуля) => id базы. Только для событий добавления в базу и изменения доп. полей. Массив можно передавать в сериализованном виде или в формате json.
namestringназвание рассылки
subjectstringзаголовок письма [должно соответствовать содержанию письма и не отталкивать]
from_namestringот кого письмо? [используйте что-нибудь запоминающееся, например, название вашей компании]
from_emailstringобратный адрес [ответы ваших подписчиков будут приходить на этот адрес]
personalizeToEmailstring{on/off} - включить/выключить персонализацию в поле "Кому:" [default: off]
to_emailstringперсонализация в поле "Кому:" [можно использовать %ТЭГИ% из дополнительных полей базы, например %EMAIL%]
track_opensstring{Y,N} - следить за открыванием [default: Y]
track_clicksstring{Y,N} - отслеживать клики [default: Y]
plain_clicksstring{Y,N} - отслеживать клики в текстовой версии [default: N]
no_images_addstring{0,1} - не прикладывать картинки к письму. [default: 0] - по умолчанию прикладываются. помогает проходить спам-фильтры и отображает картинки даже у тех получателей, у кого они по умолчанию отключены
analyticsstring{google,N} - добавить Google Analytics™ для отслеживания всех URLs [default: N]
analytics_tagstringтекстовый тег, как рассылка будет отображаться в Google Analytics™, например: Рассылка_9_17_2011
htmlstringкод html-версии письма. Либо id сохраненного html-шаблона. Либо сохраненный шаблон из ЛК (из раздела Шаблоны) в формате tmpl1234, где 1234 это id шаблона
plain_textstringтекстовая версия письма
actionstringсобытия, на которые реагирует авторассылка. допустимые значения: open - открытие письма, edit - изменение доп. полей подписчика или любая (перечислять через запятую) комбинация из {form - подписка через форму, add - ручное добавление, upload - импорт}. по умолчанию - подписка через форму
delay_1intвремя задержки
delay_2string{hour, day, week} - единица измерения времени задержки
schedule_timestringназначенное время отправки при срабатывании "важной даты". например, 10:00:00
campaignsstringперечисленные через запятую id рассылок, на открытия в которых должна реагировать авторассылка - для события open или номера полей, на изменение которых должна реагировать авторассылка - для события edit
autoint{0, 1, 2} - состояние авторассылки: 0 - черновик, 1 - активна, 2 - в архиве

Что возвращается

id созданной рассылки

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.create_auto",
  "api_key": "YOUR_API_KEY"
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.create_auto',
        'api_key' => 'YOUR_API_KEY',
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.create_auto',
        'api_key': 'YOUR_API_KEY',
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.create_auto",
  "api_key": "YOUR_API_KEY"
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.update #

POST ?method=campaigns.update

Обновляем параметры рассылки.

Параметры

ПараметрТипОписание
campaign_id обязательныйintid обновляемой кампании
list_idserialized arrayиндексный массив адресных баз, по которым будет создана рассылка. Структура: порядковый номер (от нуля) => id базы. Массив можно передавать в сериализованном виде или в формате json.
namestringназвание рассылки
subjectstringзаголовок письма [должно соответствовать содержанию письма и не отталкивать]
from_namestringот кого письмо? [используйте что-нибудь запоминающееся, например, название вашей компании]
from_emailstringобратный адрес [ответы ваших подписчиков будут приходить на этот адрес]
personalizeToEmailstring{on/off} - включить/выключить персонализацию в поле "Кому:" [default: off]
to_emailstringперсонализация в поле "Кому:" [можно использовать %ТЭГИ% из дополнительных полей базы, например %EMAIL%]
track_opensstring{Y,N} - следить за открыванием [default: Y]
track_clicksstring{Y,N} - отслеживать клики [default: Y]
plain_clicksstring{Y,N} - отслеживать клики в текстовой версии [default: N]
no_images_addstring{0,1} - не прикладывать картинки к письму. [default: 0] - по умолчанию прикладываются. помогает проходить спам-фильтры и отображает картинки даже у тех получателей, у кого они по умолчанию отключены
analyticsstring{google,N} - добавить Google Analytics™ для отслеживания всех URLs [default: N]
analytics_tagstringтекстовый тег, как рассылка будет отображаться в Google Analytics™, например: Рассылка_9_17_2011
htmlstringкод html-версии письма. Либо id сохраненного html-шаблона. Либо сохраненный шаблон из ЛК (из раздела Шаблоны) в формате tmpl1234, где 1234 это id шаблона
plain_textstringтекстовая версия письма
statusstring[DRAFT, SCHEDULE, MODERATING] - перевод в статус SCHEDULE или MODERATING возможен только если рассылка удовлетворяет ряду условий:
  • заданы $subject, $from_name, $from_email
  • задана $html или $plain_text версия письма
  • есть ссылка на отписку для подписчиков вида отписаться для html-версии и %ОТПИСАТЬСЯ% для plain-text версии


if (status=SCHEDULE) : delivery_time в формате mysql: YYYY-MM-DD HH:MM:SS
esegmentserialized arrayсегменты баз для рассылки. Структура массива: id базы => массив сегмента. Структура массивов сегмента: [match] = {any|all} - должны выполняться все или любые из условия. [c] - массив условий. Содержит поля: [field] - тип поля (email, merge_{1..10}), [op] - условие {is, is not, contains, notcontain, starts, ends, greater, less}, [value] - значение поля. Например: array['match']='any';array['c'][0]['field']='email';array['c'][0]['op']='is';array['c'][0]['value']='support@dashamail.ru'; Массив можно передавать в сериализованном виде или в формате json.

Что возвращается

Если msg.err_code равен нулю, операция прошла успешно.

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.update",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.update',
        'api_key' => 'YOUR_API_KEY',
        'campaign_id' => 5512,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.update',
        'api_key': 'YOUR_API_KEY',
        'campaign_id': 5512,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.update",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.update_auto #

POST ?method=campaigns.update_auto

Обновляем параметры авторассылки.

Параметры

ПараметрТипОписание
campaign_id обязательныйintid обновляемой кампании
list_idserialized arrayиндексный массив адресных баз, на события в которых будет реагировать авторассылка. Структура: порядковый номер (от нуля) => id базы. Только для событий добавления в базу и изменения доп. полей. Массив можно передавать в сериализованном виде или в формате json.
namestringназвание рассылки
subjectstringзаголовок письма [должно соответствовать содержанию письма и не отталкивать]
from_namestringот кого письмо? [используйте что-нибудь запоминающееся, например, название вашей компании]
from_emailstringобратный адрес [ответы ваших подписчиков будут приходить на этот адрес]
personalizeToEmailstring{on/off} - включить/выключить персонализацию в поле "Кому:" [default: off]
to_emailstringперсонализация в поле "Кому:" [можно использовать %ТЭГИ% из дополнительных полей базы, например %EMAIL%]
track_opensstring{Y,N} - следить за открыванием [default: Y]
track_clicksstring{Y,N} - отслеживать клики [default: Y]
plain_clicksstring{Y,N} - отслеживать клики в текстовой версии [default: N]
no_images_addstring{0,1} - не прикладывать картинки к письму. [default: 0] - по умолчанию прикладываются. помогает проходить спам-фильтры и отображает картинки даже у тех получателей, у кого они по умолчанию отключены
analyticsstring{google,N} - добавить Google Analytics™ для отслеживания всех URLs [default: N]
analytics_tagstringтекстовый тег, как рассылка будет отображаться в Google Analytics™, например: Рассылка_9_17_2011
htmlstringкод html-версии письма. Либо id сохраненного html-шаблона. Либо сохраненный шаблон из ЛК (из раздела Шаблоны) в формате tmpl1234, где 1234 это id шаблона
plain_textstringтекстовая версия письма
delay_1intвремя задержки
delay_2string{hour, day, week} - единица измерения времени задержки
campaignsstringперечисленные через запятую id рассылок, на открытия в которых должна реагировать авторассылка - для события open или номера полей, на изменение которых должна реагировать авторассылка - для события edit
autoint{0, 1, 2} - состояние авторассылки: 0 - черновик, 1 - активна, 2 - в архиве

Что возвращается

Если msg.err_code равен нулю, операция прошла успешно.

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.update_auto",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.update_auto',
        'api_key' => 'YOUR_API_KEY',
        'campaign_id' => 5512,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.update_auto',
        'api_key': 'YOUR_API_KEY',
        'campaign_id': 5512,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.update_auto",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.delete #

POST ?method=campaigns.delete

Удаляем рассылку

Параметры

ПараметрТипОписание
campaign_id обязательныйintid удаляемой рассылки

Что возвращается

Если msg.err_code равен нулю, операция прошла успешно.

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.delete",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.delete',
        'api_key' => 'YOUR_API_KEY',
        'campaign_id' => 5512,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.delete',
        'api_key': 'YOUR_API_KEY',
        'campaign_id': 5512,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.delete",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.delete_automation #

POST ?method=campaigns.delete_automation

Удаляем рассылку в автоматизации

Параметры

ПараметрТипОписание
campaign_id обязательныйintid удаляемой рассылки в автоматизации

Что возвращается

Если msg.err_code равен нулю, операция прошла успешно.

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.delete_automation",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.delete_automation',
        'api_key' => 'YOUR_API_KEY',
        'campaign_id' => 5512,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.delete_automation',
        'api_key': 'YOUR_API_KEY',
        'campaign_id': 5512,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.delete_automation",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.copy #

POST ?method=campaigns.copy

Копируем рассылку

Параметры

ПараметрТипОписание
campaign_id обязательныйintid копируемой рассылки

Что возвращается

id новой скопированной рассылки

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.copy",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.copy',
        'api_key' => 'YOUR_API_KEY',
        'campaign_id' => 5512,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.copy',
        'api_key': 'YOUR_API_KEY',
        'campaign_id': 5512,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.copy",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.attach #

POST ?method=campaigns.attach

Добавляем вложение

Параметры

ПараметрТипОписание
campaign_id обязательныйintid рассылки
url обязательныйstringадрес файла
namestringназвание файла после загрузки (полезно при динамической генерации контента). Указывается вместе с расширением.

Что возвращается

id приложенного файла

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.attach",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512,
  "url": "https://example.com/"
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.attach',
        'api_key' => 'YOUR_API_KEY',
        'campaign_id' => 5512,
        'url' => 'https://example.com/',
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.attach',
        'api_key': 'YOUR_API_KEY',
        'campaign_id': 5512,
        'url': 'https://example.com/',
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.attach",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512,
  "url": "https://example.com/"
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.get_attachments #

GET ?method=campaigns.get_attachments

Получаем приложенные файлы

Параметры

ПараметрТипОписание
campaign_id обязательныйintid рассылки

Что возвращается

Массив строк адресных баз с различными параметрами. Вложенный массив подразумевается сериализорованным.

ПолеОписание
idid файла
campaign_idid рассылки
nameназвание файла
sizeразмер файла в байтах
updated_atвремя добавления
curl 'https://api.dashamail.com/?method=campaigns.get_attachments&api_key=YOUR_API_KEY&campaign_id=5512'
<?php
$url = 'https://api.dashamail.com/?' . http_build_query([
    'method' => 'campaigns.get_attachments',
    'api_key' => 'YOUR_API_KEY',
    'campaign_id' => 5512,
]);

$response = json_decode(file_get_contents($url), true);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.get(
    'https://api.dashamail.com/',
    params={
        'method': 'campaigns.get_attachments',
        'api_key': 'YOUR_API_KEY',
        'campaign_id': 5512,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const params = new URLSearchParams({
  "method": "campaigns.get_attachments",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512
});

const response = await fetch(`https://api.dashamail.com/?${params}`);
const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.delete_attachment #

POST ?method=campaigns.delete_attachment

Удаляем приложенный файл

Параметры

ПараметрТипОписание
campaign_id обязательныйintid рассылки
id обязательныйintid файла

Что возвращается

Если msg.err_code равен нулю, операция прошла успешно.

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.delete_attachment",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512,
  "id": 1
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.delete_attachment',
        'api_key' => 'YOUR_API_KEY',
        'campaign_id' => 5512,
        'id' => 1,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.delete_attachment',
        'api_key': 'YOUR_API_KEY',
        'campaign_id': 5512,
        'id': 1,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.delete_attachment",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512,
  "id": 1
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.get_saved_templates #

GET ?method=campaigns.get_saved_templates

Получаем шаблоны из ЛК

Параметры

ПараметрТипОписание
namestringназвание шаблона
idintid шаблона

Что возвращается

Массив шаблонов с параметрами.

ПолеОписание
idid шаблона
nameназвание шаблона
curl 'https://api.dashamail.com/?method=campaigns.get_saved_templates&api_key=YOUR_API_KEY'
<?php
$url = 'https://api.dashamail.com/?' . http_build_query([
    'method' => 'campaigns.get_saved_templates',
    'api_key' => 'YOUR_API_KEY',
]);

$response = json_decode(file_get_contents($url), true);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.get(
    'https://api.dashamail.com/',
    params={
        'method': 'campaigns.get_saved_templates',
        'api_key': 'YOUR_API_KEY',
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const params = new URLSearchParams({
  "method": "campaigns.get_saved_templates",
  "api_key": "YOUR_API_KEY"
});

const response = await fetch(`https://api.dashamail.com/?${params}`);
const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.add_template #

POST ?method=campaigns.add_template

Добавляем html шаблон

Параметры

ПараметрТипОписание
name обязательныйstringназвание шаблона
template обязательныйstringhtml-код либо id рассылки, откуда взять html

Что возвращается

id нового шаблона

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.add_template",
  "api_key": "YOUR_API_KEY",
  "name": "Клиенты интернет-магазина",
  "template": "значение"
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.add_template',
        'api_key' => 'YOUR_API_KEY',
        'name' => 'Клиенты интернет-магазина',
        'template' => 'значение',
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.add_template',
        'api_key': 'YOUR_API_KEY',
        'name': 'Клиенты интернет-магазина',
        'template': 'значение',
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.add_template",
  "api_key": "YOUR_API_KEY",
  "name": "Клиенты интернет-магазина",
  "template": "значение"
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.delete_template #

POST ?method=campaigns.delete_template

Удаляем html шаблон

Параметры

ПараметрТипОписание
id обязательныйintid шаблона

Что возвращается

Если msg.err_code равен нулю, операция прошла успешно.

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.delete_template",
  "api_key": "YOUR_API_KEY",
  "id": 1
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.delete_template',
        'api_key' => 'YOUR_API_KEY',
        'id' => 1,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.delete_template',
        'api_key': 'YOUR_API_KEY',
        'id': 1,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.delete_template",
  "api_key": "YOUR_API_KEY",
  "id": 1
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.force_auto #

POST ?method=campaigns.force_auto

Принудительно вызываем срабатывание авторассылки (при этом она должна быть активна)

Параметры

ПараметрТипОписание
campaign_id обязательныйintid авторассылки
member_id обязательныйintid получателя в адресной базе.
delayintвремя задержки отправки (в мс)

Что возвращается

Если msg.err_code равен нулю, операция прошла успешно.

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.force_auto",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512,
  "member_id": 90412881
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.force_auto',
        'api_key' => 'YOUR_API_KEY',
        'campaign_id' => 5512,
        'member_id' => 90412881,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.force_auto',
        'api_key': 'YOUR_API_KEY',
        'campaign_id': 5512,
        'member_id': 90412881,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.force_auto",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512,
  "member_id": 90412881
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.get_folders #

GET ?method=campaigns.get_folders

Получаем папки рассылок

Параметры

ПараметрТипОписание
namestringимя папки
idintid папки

Что возвращается

Массив папок.

ПолеОписание
idid папки
nameимя папки
curl 'https://api.dashamail.com/?method=campaigns.get_folders&api_key=YOUR_API_KEY'
<?php
$url = 'https://api.dashamail.com/?' . http_build_query([
    'method' => 'campaigns.get_folders',
    'api_key' => 'YOUR_API_KEY',
]);

$response = json_decode(file_get_contents($url), true);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.get(
    'https://api.dashamail.com/',
    params={
        'method': 'campaigns.get_folders',
        'api_key': 'YOUR_API_KEY',
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const params = new URLSearchParams({
  "method": "campaigns.get_folders",
  "api_key": "YOUR_API_KEY"
});

const response = await fetch(`https://api.dashamail.com/?${params}`);
const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.move_to_folder #

POST ?method=campaigns.move_to_folder

Перемещаем рассылку в папку

Параметры

ПараметрТипОписание
campaign_id обязательныйintid рассылки
folder_id обязательныйintid папки куда переместить.

Что возвращается

Если msg.err_code равен нулю, операция прошла успешно.

curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "campaigns.move_to_folder",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512,
  "folder_id": 1
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'campaigns.move_to_folder',
        'api_key' => 'YOUR_API_KEY',
        'campaign_id' => 5512,
        'folder_id' => 1,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'campaigns.move_to_folder',
        'api_key': 'YOUR_API_KEY',
        'campaign_id': 5512,
        'folder_id': 1,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "campaigns.move_to_folder",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512,
  "folder_id": 1
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

campaigns.get_automations #

GET ?method=campaigns.get_automations

Получаем список всех автоматизаций и потоков

Параметры

ПараметрТипОписание
idintid запрашиваемой автоматизации или потока

Что возвращается

Массив автоматизаций с параметрами

ПолеОписание
idid автоматизации
nameназвание автоматизации
last_edit_timeвремя последнего редактирования
priorityприоритет (0 - нормальный, 1 - высокий, 2 - критический)
typeautomation (автоматизация) или workflow (поток старого типа)
curl 'https://api.dashamail.com/?method=campaigns.get_automations&api_key=YOUR_API_KEY'
<?php
$url = 'https://api.dashamail.com/?' . http_build_query([
    'method' => 'campaigns.get_automations',
    'api_key' => 'YOUR_API_KEY',
]);

$response = json_decode(file_get_contents($url), true);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.get(
    'https://api.dashamail.com/',
    params={
        'method': 'campaigns.get_automations',
        'api_key': 'YOUR_API_KEY',
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const params = new URLSearchParams({
  "method": "campaigns.get_automations",
  "api_key": "YOUR_API_KEY"
});

const response = await fetch(`https://api.dashamail.com/?${params}`);
const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

DashaMail хранит и защищает ваши данные на территории Российской Федерации

Подробнее...