Рассылки
Создание, отправка и расписание массовых рассылок.
Это методы предыдущей версии API. Они работают и отключаться не будут, но новые интеграции лучше писать на REST API v2.
- GET campaigns.get
- POST campaigns.create
- POST campaigns.create_auto
- POST campaigns.update
- POST campaigns.update_auto
- POST campaigns.delete
- POST campaigns.delete_automation
- POST campaigns.copy
- POST campaigns.attach
- GET campaigns.get_attachments
- POST campaigns.delete_attachment
- GET campaigns.get_saved_templates
- POST campaigns.add_template
- POST campaigns.delete_template
- POST campaigns.force_auto
- GET campaigns.get_folders
- POST campaigns.move_to_folder
- GET campaigns.get_automations
campaigns.get #
GET
?method=campaigns.get
Получаем список рассылок пользователя
Параметры
| Параметр | Тип | Описание |
|---|---|---|
campaign_id | int | id запрашиваемой рассылки |
status | string | {DRAFT, SCHEDULE, MODERATING, CREATED, PROCESSING, SENT, BLOCKED, SUBSCRIBE, BLOCKED-SPAM, NEED-FIX} - статус рассылки |
list_id | int | фильтр рассылок по адресным базам |
workflow | int | ID автоматизации/потока для получения списка рассылок, содержащихся в нем |
member_id | int | в случае передачи в даннном параметре id подписчика вместе с campaign_id в результатах текстовой версии (plain_text) и html будут подставлены все теги персонализации, а также динамический контент для данного подписчика |
start | date | фильтр рассылок по времени, начальная дата, формат: YYYY-MM-DD |
end | date | фильтр рассылок по времени, конечная дата, формат: YYYY-MM-DD |
type | string | {online_builder, html} - тип кампании (онлайн-редактор, html-шаблон) |
limit | int | количество записей для вывода. по-умолчанию: без ограничений |
Что возвращается
Массив подписчиков с параметрами.
| Поле | Описание |
|---|---|
id | id рассылки |
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_id | id адресной базы, по которой была отправлена рассылка. |
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_source | utm_source для отображения кликов в Yandex.Метрике |
analytics_medium | utm_medium для отображения кликов в Yandex.Метрике |
analytics_content | utm_content для отображения кликов в Yandex.Метрике |
analytics_term | utm_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. |
name | string | название рассылки |
subject | string | заголовок письма [должно соответствовать содержанию письма и не отталкивать] |
from_name | string | от кого письмо? [используйте что-нибудь запоминающееся, например, название вашей компании] |
from_email | string | обратный адрес [ответы ваших подписчиков будут приходить на этот адрес] |
personalizeToEmail | string | {on/off} - включить/выключить персонализацию в поле "Кому:" [default: off] |
to_email | string | персонализация в поле "Кому:" [можно использовать %ТЭГИ% из дополнительных полей базы, например %EMAIL%] |
track_opens | string | {Y,N} - следить за открыванием [default: Y] |
track_clicks | string | {Y,N} - отслеживать клики [default: Y] |
plain_clicks | string | {Y,N} - отслеживать клики в текстовой версии [default: N] |
no_images_add | string | {0,1} - не прикладывать картинки к письму. [default: 0] - по умолчанию прикладываются. помогает проходить спам-фильтры и отображает картинки даже у тех получателей, у кого они по умолчанию отключены |
analytics | string | {google,N} - добавить Google Analytics™ для отслеживания всех URLs [default: N] |
analytics_tag | string | текстовый тег, как рассылка будет отображаться в Google Analytics™, например: Рассылка_9_17_2011 |
html | string | код html-версии письма. Либо id сохраненного html-шаблона. Либо сохраненный шаблон из ЛК (из раздела Шаблоны) в формате tmpl1234, где 1234 это id шаблона |
plain_text | string | текстовая версия письма |
esegment | serialized 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_id | serialized array | индексный массив адресных баз, на события в которых будет реагировать авторассылка. Структура: порядковый номер (от нуля) => id базы. Только для событий добавления в базу и изменения доп. полей. Массив можно передавать в сериализованном виде или в формате json. |
name | string | название рассылки |
subject | string | заголовок письма [должно соответствовать содержанию письма и не отталкивать] |
from_name | string | от кого письмо? [используйте что-нибудь запоминающееся, например, название вашей компании] |
from_email | string | обратный адрес [ответы ваших подписчиков будут приходить на этот адрес] |
personalizeToEmail | string | {on/off} - включить/выключить персонализацию в поле "Кому:" [default: off] |
to_email | string | персонализация в поле "Кому:" [можно использовать %ТЭГИ% из дополнительных полей базы, например %EMAIL%] |
track_opens | string | {Y,N} - следить за открыванием [default: Y] |
track_clicks | string | {Y,N} - отслеживать клики [default: Y] |
plain_clicks | string | {Y,N} - отслеживать клики в текстовой версии [default: N] |
no_images_add | string | {0,1} - не прикладывать картинки к письму. [default: 0] - по умолчанию прикладываются. помогает проходить спам-фильтры и отображает картинки даже у тех получателей, у кого они по умолчанию отключены |
analytics | string | {google,N} - добавить Google Analytics™ для отслеживания всех URLs [default: N] |
analytics_tag | string | текстовый тег, как рассылка будет отображаться в Google Analytics™, например: Рассылка_9_17_2011 |
html | string | код html-версии письма. Либо id сохраненного html-шаблона. Либо сохраненный шаблон из ЛК (из раздела Шаблоны) в формате tmpl1234, где 1234 это id шаблона |
plain_text | string | текстовая версия письма |
action | string | события, на которые реагирует авторассылка. допустимые значения: open - открытие письма, edit - изменение доп. полей подписчика или любая (перечислять через запятую) комбинация из {form - подписка через форму, add - ручное добавление, upload - импорт}. по умолчанию - подписка через форму |
delay_1 | int | время задержки |
delay_2 | string | {hour, day, week} - единица измерения времени задержки |
schedule_time | string | назначенное время отправки при срабатывании "важной даты". например, 10:00:00 |
campaigns | string | перечисленные через запятую id рассылок, на открытия в которых должна реагировать авторассылка - для события open или номера полей, на изменение которых должна реагировать авторассылка - для события edit |
auto | int | {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 обязательный | int | id обновляемой кампании |
list_id | serialized array | индексный массив адресных баз, по которым будет создана рассылка. Структура: порядковый номер (от нуля) => id базы. Массив можно передавать в сериализованном виде или в формате json. |
name | string | название рассылки |
subject | string | заголовок письма [должно соответствовать содержанию письма и не отталкивать] |
from_name | string | от кого письмо? [используйте что-нибудь запоминающееся, например, название вашей компании] |
from_email | string | обратный адрес [ответы ваших подписчиков будут приходить на этот адрес] |
personalizeToEmail | string | {on/off} - включить/выключить персонализацию в поле "Кому:" [default: off] |
to_email | string | персонализация в поле "Кому:" [можно использовать %ТЭГИ% из дополнительных полей базы, например %EMAIL%] |
track_opens | string | {Y,N} - следить за открыванием [default: Y] |
track_clicks | string | {Y,N} - отслеживать клики [default: Y] |
plain_clicks | string | {Y,N} - отслеживать клики в текстовой версии [default: N] |
no_images_add | string | {0,1} - не прикладывать картинки к письму. [default: 0] - по умолчанию прикладываются. помогает проходить спам-фильтры и отображает картинки даже у тех получателей, у кого они по умолчанию отключены |
analytics | string | {google,N} - добавить Google Analytics™ для отслеживания всех URLs [default: N] |
analytics_tag | string | текстовый тег, как рассылка будет отображаться в Google Analytics™, например: Рассылка_9_17_2011 |
html | string | код html-версии письма. Либо id сохраненного html-шаблона. Либо сохраненный шаблон из ЛК (из раздела Шаблоны) в формате tmpl1234, где 1234 это id шаблона |
plain_text | string | текстовая версия письма |
status | string | [DRAFT, SCHEDULE, MODERATING] - перевод в статус SCHEDULE или MODERATING возможен только если рассылка удовлетворяет ряду условий:
if (status=SCHEDULE) : delivery_time в формате mysql: YYYY-MM-DD HH:MM:SS |
esegment | serialized 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 обязательный | int | id обновляемой кампании |
list_id | serialized array | индексный массив адресных баз, на события в которых будет реагировать авторассылка. Структура: порядковый номер (от нуля) => id базы. Только для событий добавления в базу и изменения доп. полей. Массив можно передавать в сериализованном виде или в формате json. |
name | string | название рассылки |
subject | string | заголовок письма [должно соответствовать содержанию письма и не отталкивать] |
from_name | string | от кого письмо? [используйте что-нибудь запоминающееся, например, название вашей компании] |
from_email | string | обратный адрес [ответы ваших подписчиков будут приходить на этот адрес] |
personalizeToEmail | string | {on/off} - включить/выключить персонализацию в поле "Кому:" [default: off] |
to_email | string | персонализация в поле "Кому:" [можно использовать %ТЭГИ% из дополнительных полей базы, например %EMAIL%] |
track_opens | string | {Y,N} - следить за открыванием [default: Y] |
track_clicks | string | {Y,N} - отслеживать клики [default: Y] |
plain_clicks | string | {Y,N} - отслеживать клики в текстовой версии [default: N] |
no_images_add | string | {0,1} - не прикладывать картинки к письму. [default: 0] - по умолчанию прикладываются. помогает проходить спам-фильтры и отображает картинки даже у тех получателей, у кого они по умолчанию отключены |
analytics | string | {google,N} - добавить Google Analytics™ для отслеживания всех URLs [default: N] |
analytics_tag | string | текстовый тег, как рассылка будет отображаться в Google Analytics™, например: Рассылка_9_17_2011 |
html | string | код html-версии письма. Либо id сохраненного html-шаблона. Либо сохраненный шаблон из ЛК (из раздела Шаблоны) в формате tmpl1234, где 1234 это id шаблона |
plain_text | string | текстовая версия письма |
delay_1 | int | время задержки |
delay_2 | string | {hour, day, week} - единица измерения времени задержки |
campaigns | string | перечисленные через запятую id рассылок, на открытия в которых должна реагировать авторассылка - для события open или номера полей, на изменение которых должна реагировать авторассылка - для события edit |
auto | int | {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 обязательный | int | id удаляемой рассылки |
Что возвращается
Если 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 обязательный | int | id удаляемой рассылки в автоматизации |
Что возвращается
Если 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 обязательный | int | id копируемой рассылки |
Что возвращается
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 обязательный | int | id рассылки |
url обязательный | string | адрес файла |
name | string | название файла после загрузки (полезно при динамической генерации контента). Указывается вместе с расширением. |
Что возвращается
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 обязательный | int | id рассылки |
Что возвращается
Массив строк адресных баз с различными параметрами. Вложенный массив подразумевается сериализорованным.
| Поле | Описание |
|---|---|
id | id файла |
campaign_id | id рассылки |
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 обязательный | int | id рассылки |
id обязательный | int | id файла |
Что возвращается
Если 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
Получаем шаблоны из ЛК
Параметры
| Параметр | Тип | Описание |
|---|---|---|
name | string | название шаблона |
id | int | id шаблона |
Что возвращается
Массив шаблонов с параметрами.
| Поле | Описание |
|---|---|
id | id шаблона |
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 обязательный | string | html-код либо 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 обязательный | int | id шаблона |
Что возвращается
Если 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 обязательный | int | id авторассылки |
member_id обязательный | int | id получателя в адресной базе. |
delay | int | время задержки отправки (в мс) |
Что возвращается
Если 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
Получаем папки рассылок
Параметры
| Параметр | Тип | Описание |
|---|---|---|
name | string | имя папки |
id | int | id папки |
Что возвращается
Массив папок.
| Поле | Описание |
|---|---|
id | id папки |
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 обязательный | int | id рассылки |
folder_id обязательный | int | id папки куда переместить. |
Что возвращается
Если 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
Получаем список всех автоматизаций и потоков
Параметры
| Параметр | Тип | Описание |
|---|---|---|
id | int | id запрашиваемой автоматизации или потока |
Что возвращается
Массив автоматизаций с параметрами
| Поле | Описание |
|---|---|
id | id автоматизации |
name | название автоматизации |
last_edit_time | время последнего редактирования |
priority | приоритет (0 - нормальный, 1 - высокий, 2 - критический) |
type | automation (автоматизация) или 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);