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

Отчёты

Открытия, клики, возвраты и сводная статистика по рассылкам.

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

reports.sent #

POST ?method=reports.sent

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

Параметры

ПараметрТипОписание
campaign_id обязательныйintid запрашиваемой рассылки
startintномер записи с которой начинать вывод. defaults: 0
limitintколичество записей для вывода. defaults: 100
orderstring[ex: "email desc"] - поле по которому можно сортировать и порядок сортировки (asc,desc).

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

Массив писем c параметрами каждого.

ПолеОписание
idid письма
member_idid подписчика
campaign_idid рассылки
list_idid адресной базы из которой подписчик
bounce_codesmtp-код ошибки в случае возврата сообщения
bounce_reasonрасшифровка bounce_code в данном конкретном случае
emailemail получателя
sent_timeвремя доставки письма
open_timeвремя открытия письма
click_timeвремя перехода по ссылке
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.sent",
  "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' => 'reports.sent',
        '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': 'reports.sent',
        '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": "reports.sent",
  "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);

reports.delivered #

POST ?method=reports.delivered

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

Параметры

ПараметрТипОписание
campaign_id обязательныйintid запрашиваемой рассылки
startintномер записи с которой начинать вывод. defaults: 0
limitintколичество записей для вывода. defaults: 100
orderstring[ex: "email desc"] - поле по которому можно сортировать и порядок сортировки (asc,desc).

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

Массив писем c параметрами каждого.

ПолеОписание
idid письма
member_idid подписчика
campaign_idid рассылки
list_idid адресной базы из которой подписчик
bounce_codesmtp-код ошибки в случае возврата сообщения
bounce_reasonрасшифровка bounce_code в данном конкретном случае
emailemail получателя
sent_timeвремя доставки письма
open_timeвремя открытия письма
click_timeвремя перехода по ссылке
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.delivered",
  "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' => 'reports.delivered',
        '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': 'reports.delivered',
        '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": "reports.delivered",
  "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);

reports.opened #

POST ?method=reports.opened

Список открытых писем в рассылке

Параметры

ПараметрТипОписание
campaign_id обязательныйintid запрашиваемой рассылки
startintномер записи с которой начинать вывод. defaults: 0
limitintколичество записей для вывода. defaults: 100
orderstring[ex: "email desc"] - поле по которому можно сортировать и порядок сортировки (asc,desc).

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

Массив писем c параметрами каждого.

ПолеОписание
idid письма
member_idid подписчика
campaign_idid рассылки
list_idid адресной базы из которой подписчик
bounce_codesmtp-код ошибки в случае возврата сообщения
bounce_reasonрасшифровка bounce_code в данном конкретном случае
emailemail получателя
sent_timeвремя доставки письма
open_timeвремя открытия письма
click_timeвремя перехода по ссылке
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.opened",
  "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' => 'reports.opened',
        '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': 'reports.opened',
        '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": "reports.opened",
  "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);

reports.clicked #

POST ?method=reports.clicked

Список писем в рассылке, где адресат перешел по любой ссылке

Параметры

ПараметрТипОписание
campaign_id обязательныйintid запрашиваемой рассылки
startintномер записи с которой начинать вывод. defaults: 0
limitintколичество записей для вывода. defaults: 100
orderstring[ex: "email desc"] - поле по которому можно сортировать и порядок сортировки (asc,desc).

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

Массив писем c параметрами каждого.

ПолеОписание
idid письма
member_idid подписчика
campaign_idid рассылки
list_idid адресной базы из которой подписчик
bounce_codesmtp-код ошибки в случае возврата сообщения
bounce_reasonрасшифровка bounce_code в данном конкретном случае
emailemail получателя
sent_timeвремя доставки письма
open_timeвремя открытия письма
click_timeвремя перехода по ссылке
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.clicked",
  "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' => 'reports.clicked',
        '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': 'reports.clicked',
        '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": "reports.clicked",
  "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);

reports.unsubscribed #

POST ?method=reports.unsubscribed

Список писем отписавшихся подписчиков в рассылке

Параметры

ПараметрТипОписание
campaign_id обязательныйintid запрашиваемой рассылки
startintномер записи с которой начинать вывод. defaults: 0
limitintколичество записей для вывода. defaults: 100
orderstring[ex: "email desc"] - поле по которому можно сортировать и порядок сортировки (asc,desc).

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

Массив писем c параметрами каждого.

ПолеОписание
idid письма
member_idid подписчика
campaign_idid рассылки
list_idid адресной базы из которой подписчик
bounce_codesmtp-код ошибки в случае возврата сообщения
bounce_reasonрасшифровка bounce_code в данном конкретном случае
emailemail получателя
sent_timeвремя доставки письма
open_timeвремя открытия письма
click_timeвремя перехода по ссылке
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.unsubscribed",
  "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' => 'reports.unsubscribed',
        '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': 'reports.unsubscribed',
        '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": "reports.unsubscribed",
  "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);

reports.bounced #

POST ?method=reports.bounced

Список возвратившихся писем в рассылке

Параметры

ПараметрТипОписание
campaign_id обязательныйintid запрашиваемой рассылки
startintномер записи с которой начинать вывод. defaults: 0
limitintколичество записей для вывода. defaults: 100
orderstring[ex: "email desc"] - поле по которому можно сортировать и порядок сортировки (asc,desc).

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

Массив писем c параметрами каждого.

ПолеОписание
idid письма
member_idid подписчика
campaign_idid рассылки
list_idid адресной базы из которой подписчик
bounce_codesmtp-код ошибки в случае возврата сообщения
bounce_reasonрасшифровка bounce_code в данном конкретном случае
emailemail получателя
sent_timeвремя доставки письма
open_timeвремя открытия письма
click_timeвремя перехода по ссылке
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.bounced",
  "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' => 'reports.bounced',
        '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': 'reports.bounced',
        '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": "reports.bounced",
  "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);

reports.clickstat #

POST ?method=reports.clickstat

статистика по кликам по различным url в письме

Параметры

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

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

Массив url c количеством кликов

ПолеОписание
urlадрес ссылки
clicksобщее число кликов по данной ссылке в рамках рассылки
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.clickstat",
  "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' => 'reports.clickstat',
        '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': 'reports.clickstat',
        '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": "reports.clickstat",
  "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);

reports.userclicks #

POST ?method=reports.userclicks

статистика по кликам по указанному url в письме

Параметры

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

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

Массив с информацией обо всех переходах по данной ссылке

ПолеОписание
urlадрес ссылки
emailemail перешедшего
click_timeвремя перехода
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.userclicks",
  "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' => 'reports.userclicks',
        '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': 'reports.userclicks',
        '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": "reports.userclicks",
  "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);

reports.bouncestat #

POST ?method=reports.bouncestat

статистика по всевозможным причинам возврата письма

Параметры

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

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

Массив ошибок возвращенных писем в рассылке

ПолеОписание
bounce_codesmtp код ошибки
countколичество писем с такой ошибкой
descriptionтиповое краткое описание ошибки
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.bouncestat",
  "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' => 'reports.bouncestat',
        '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': 'reports.bouncestat',
        '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": "reports.bouncestat",
  "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);

reports.summary #

POST ?method=reports.summary

краткая статистка по рассылке

Параметры

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

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

Массив с краткой информацией о рассылке

ПолеОписание
bouncedчисло возвращенных писем
unsubscribedчисло отписавшихся подписчиков
deliveredчисло доставленных сообщений
sentчисло отправленных сообщений
clicksобщее число кликов
openedчисло точно открытых писем
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.summary",
  "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' => 'reports.summary',
        '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': 'reports.summary',
        '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": "reports.summary",
  "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);

reports.clients #

POST ?method=reports.clients

статистика по браузерам, ОС и почтовым клиентам

Параметры

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

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

массив вида "название браузера, ОС, клиента" => количество открытий (только если ненулевое)

ПолеОписание
ieчисло пользователей ie > 6
ie6число пользователей ie6
chromeчисло пользователей chrome
operaчисло пользователей opera
firefoxчисло пользователей firefox
safariчисло пользователей safari
mailчисло пользователей mail.ru
yandexчисло пользователей yandex.ru
outlookчисло пользователей outlook
winчисло пользователей Windows
linuxчисло пользователей Linux
macчисло пользователей Mac
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.clients",
  "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' => 'reports.clients',
        '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': 'reports.clients',
        '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": "reports.clients",
  "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);

reports.geo #

POST ?method=reports.geo

статистика по регионам открытия

Параметры

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

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

массив вида "город или регион" => количество открытий (только если ненулевое)

ПолеОписание
название города или регионачисло открытий
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.geo",
  "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' => 'reports.geo',
        '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': 'reports.geo',
        '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": "reports.geo",
  "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);

reports.events #

POST ?method=reports.events

Список событий с письмами в рамках рассылки за определенный период

Параметры

ПараметрТипОписание
campaign_id обязательныйintid запрашиваемой рассылки
time_startdatetimeвремя начала выгрузки событий в формате YYYY-DD-MM HH:ii:ss (по-умолчанию: 00:00:00 текущего дня)
time_enddatetimeвремя конца выгрузки событий в формате YYYY-DD-MM HH:ii:ss (по-умолчанию: 23:59:59 текущего дня)
merge обязательныйJSON-arrayJSON-массив полей из адресных баз. Например, ["merge_1","merge_3","rating"]. Помимо дополнительных полей merge_{1..N} можно получать значения optin_time, rating и gender
emailstringemail необходимого подписчика
startintномер записи с которой начинать вывод. defaults: 0
limitintколичество записей для вывода. defaults: 100
orderstring[ex: "email desc"] - поле по которому можно сортировать и порядок сортировки (asc,desc).

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

Массив писем c параметрами каждого.

ПолеОписание
event_dateдата события
event_timeвремя события
event_typeтип события [SENT, BOUNCED, OPENED, CLICKED, PREVIEW, UNSUBSCRIBED, COMPLAINED]
bounce_category[hrd, sft, blk, spm]
bounce_codeкод ошибки доставки
bounce_reasonрасшифровка ошибки доставки
emailemail-адрес получателя
domainдомен получателя
user_idid клиента
campaign_idid рассылки
member_idid подписчика в системе Dashamail
list_idid адресной базы
url_hashхэш url в случае клика
url_persссылка персонализированная
url_originalссылка оригинальная из макета
ipip-адрес
ip_atonip-адрес в формате ATON
regionрегион
OSоперационная система
browserбраузер
webserviceпочтовый веб-сервис
user_agentUser Agent полный устройства
refererисточник перехода
languageязык пользователя на устройстве
deviceустройство
dark_mode0 - светлый режим, 1 - темный режим
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "reports.events",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512,
  "merge": "значение"
}'
<?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' => 'reports.events',
        'api_key' => 'YOUR_API_KEY',
        'campaign_id' => 5512,
        'merge' => 'значение',
    ], 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': 'reports.events',
        'api_key': 'YOUR_API_KEY',
        'campaign_id': 5512,
        'merge': 'значение',
    },
)

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": "reports.events",
  "api_key": "YOUR_API_KEY",
  "campaign_id": 5512,
  "merge": "значение"
}),
});

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

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

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

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