Отчёты
Статистика по рассылке: сколько ушло, дошло, открыли, кликнули, вернулось и отписалось.
Все отчёты строятся по одному шаблону адреса:
GET /reports/{campaign_id}/{метрика}
Данные считаются по событиям. Событие попадает в статистику с задержкой в несколько секунд после того, как произошло, поэтому сразу после запуска рассылки отчёты будут неполными.
Метрики
summary | Сводка по рассылке одним объектом |
sent | Кому отправлено |
delivered | Кому доставлено |
opened | Кто открыл |
clicked | Кто кликнул |
bounced | Возвраты |
complained | Жалобы на спам |
unsubscribed | Отписавшиеся |
events | Лента всех событий с фильтрами |
clickstat | Клики в разрезе ссылок |
userclicks | Кто кликнул по конкретной ссылке |
bouncestat | Возвраты в разрезе SMTP-кодов |
domains | Показатели в разрезе почтовых доменов |
geo | География открытий |
clients | Почтовые клиенты и устройства |
codes | Коды подтверждения |
Сортировка и постраничный вывод
Списочные отчёты принимают start, limit
(по умолчанию 100) и order в формате
поле направление. Допустимые поля сортировки:
event_date, event_time, campaign_id,
list_id, event_type, bounce_category,
bounce_code, bounce_reason, email,
domain, member_id, ip,
region, OS, browser,
webservice, user_agent,
url_original, device.
Направление — asc или desc.
- GET Сводка по рассылке
- GET Списки получателей по событию
- GET Лента событий
- GET Клики по ссылкам
- GET Кто кликнул по ссылке
- GET Возвраты по кодам
- GET Показатели по доменам
- GET География открытий
- GET Почтовые клиенты и устройства
- GET Коды подтверждения
Сводка по рассылке #
GET
/reports/{campaign_id}/summary
Главные показатели рассылки одним объектом. Отсюда стоит начинать: остальные отчёты нужны, когда требуется детализация.
Параметр fast отдаёт заранее посчитанные
значения — это заметно быстрее, но несовместимо с фильтром
по времени.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
campaign_id обязательный | integer | Идентификатор рассылки. |
Параметры строки запроса
| Параметр | Тип | Описание |
|---|---|---|
fast | флаг | Взять готовые агрегаты вместо пересчёта. Игнорируется, если задан период. |
time_start | datetime | Начало периода. При заданном периоде поле sent из ответа исключается. |
time_end | datetime | Конец периода. |
detailed | integer | Со значением 1 сводка разбивается по рассылкам. |
Что возвращается
opened и clicked — общее число
событий, unique_opened и
unique_clicked — число уникальных подписчиков.
Возвраты разложены по типам: hard —
несуществующие адреса, soft — временные отказы,
spam и spam_blocked — отклонения
антиспам-фильтрами, blk — прочие блокировки.
Возможные ошибки
| HTTP | code | Когда возникает |
|---|---|---|
404 |
22 |
Рассылки с таким campaign_id нет |
curl -X GET 'https://api.dashamail.com/v2/reports/501233/summary?fast=1' \
-H 'Authorization: Bearer YOUR_API_KEY'
<?php
$ch = curl_init('https://api.dashamail.com/v2/reports/501233/summary?fast=1');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
],
]);
$response = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status >= 400) {
throw new RuntimeException($response['error']['message']);
}
print_r($response['response']['data']);
import requests
response = requests.get(
'https://api.dashamail.com/v2/reports/501233/summary?fast=1',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
response.raise_for_status()
print(response.json()['response']['data'])
const response = await fetch('https://api.dashamail.com/v2/reports/501233/summary?fast=1', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
});
const payload = await response.json();
if (!response.ok) throw new Error(payload.error.message);
console.log(payload.response.data);
{
"response": {
"msg": {
"err_code": 0,
"text": "OK",
"type": "message"
},
"data": {
"sent": 1284,
"opened": 741,
"unique_opened": 512,
"clicked": 168,
"unique_clicked": 121,
"unsubscribed": 6,
"complained": 1,
"hard": 12,
"soft": 4,
"spam": 0,
"spam_blocked": 3,
"blk": 1,
"preview": 22,
"total_events": 2258,
"first_sent": "2026-04-05 10:00:04",
"first_open": "2026-04-05 10:01:37",
"last_open": "2026-04-08 21:14:52",
"first_click": "2026-04-05 10:02:11",
"last_click": "2026-04-08 19:02:40"
}
}
}
Списки получателей по событию #
GET
/reports/{campaign_id}/{metric}
Возвращает подписчиков, с которыми произошло указанное
событие. Один и тот же формат для семи метрик:
sent, delivered, opened,
clicked, bounced,
complained, unsubscribed.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
campaign_id обязательный | integer | Идентификатор рассылки. |
metric обязательный | string | Событие. Допустимые значения: sent, delivered, opened, clicked, bounced, complained, unsubscribed |
Параметры строки запроса
| Параметр | Тип | Описание |
|---|---|---|
start | integerпо умолчанию: 0 | Смещение. |
limit | integerпо умолчанию: 100 | Размер страницы. |
order | stringпо умолчанию: event_time asc | Сортировка, см. список полей. |
external_campaign_id | string | Использовать ваш внешний идентификатор рассылки вместо campaign_id. |
old_reports | флаг | Читать из архивного хранилища вместо аналитической базы. Нужен для очень старых рассылок. |
Возможные ошибки
| HTTP | code | Когда возникает |
|---|---|---|
422 |
3 |
Не передан ни campaign_id, ни external_campaign_id |
404 |
22 |
Рассылки с таким идентификатором нет |
500 |
23 |
Недопустимое поле в order |
404 |
4 |
Событий такого типа не было |
curl -X GET 'https://api.dashamail.com/v2/reports/501233/opened?limit=2' \
-H 'Authorization: Bearer YOUR_API_KEY'
<?php
$ch = curl_init('https://api.dashamail.com/v2/reports/501233/opened?limit=2');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
],
]);
$response = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status >= 400) {
throw new RuntimeException($response['error']['message']);
}
print_r($response['response']['data']);
import requests
response = requests.get(
'https://api.dashamail.com/v2/reports/501233/opened?limit=2',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
response.raise_for_status()
print(response.json()['response']['data'])
const response = await fetch('https://api.dashamail.com/v2/reports/501233/opened?limit=2', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
});
const payload = await response.json();
if (!response.ok) throw new Error(payload.error.message);
console.log(payload.response.data);
{
"response": {
"msg": {
"err_code": 0,
"text": "OK",
"type": "message"
},
"data": [
{
"member_id": 90412881,
"campaign_id": 501233,
"list_id": 128341,
"email": "ivan@example.com",
"sent_time": "2026-04-05 10:00:12"
},
{
"member_id": 90412882,
"campaign_id": 501233,
"list_id": 128341,
"email": "maria@example.com",
"sent_time": "2026-04-05 10:00:13"
}
]
}
}
Лента событий #
GET
/reports/{campaign_id}/events
Все события рассылки в одном потоке, с фильтрами по времени, типу и подписчику. Подходит для синхронизации событий с вашей аналитикой.
По умолчанию берутся события за сегодня. Чтобы получить
события за другой период, задайте time_start
и time_end явно.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
campaign_id обязательный | integer | Идентификатор рассылки. |
Параметры строки запроса
| Параметр | Тип | Описание |
|---|---|---|
time_start | datetimeпо умолчанию: начало текущих суток | Начало периода. |
time_end | datetimeпо умолчанию: начало следующих суток | Конец периода. |
event_type | string | Оставить события одного типа. Допустимые значения: SENT, OPENED, CLICKED, PREVIEW, UNSUBSCRIBED, COMPLAINED, BOUNCED |
email | string | События одного подписчика. |
merge | JSON-строка | Дополнительные поля подписчика, которые нужно приложить к каждому событию — например ["merge_1","merge_2"]. |
start | integerпо умолчанию: 0 | Смещение. |
limit | integerпо умолчанию: 100 | Размер страницы. |
order | stringпо умолчанию: event_time asc | Сортировка. |
Возможные ошибки
| HTTP | code | Когда возникает |
|---|---|---|
404 |
22 |
Рассылки с таким campaign_id нет |
404 |
4 |
За период событий нет |
curl -X GET 'https://api.dashamail.com/v2/reports/501233/events?event_type=CLICKED&time_start=2026-04-05+00%3A00%3A00&limit=2' \
-H 'Authorization: Bearer YOUR_API_KEY'
<?php
$ch = curl_init('https://api.dashamail.com/v2/reports/501233/events?event_type=CLICKED&time_start=2026-04-05+00%3A00%3A00&limit=2');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
],
]);
$response = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status >= 400) {
throw new RuntimeException($response['error']['message']);
}
print_r($response['response']['data']);
import requests
response = requests.get(
'https://api.dashamail.com/v2/reports/501233/events?event_type=CLICKED&time_start=2026-04-05+00%3A00%3A00&limit=2',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
response.raise_for_status()
print(response.json()['response']['data'])
const response = await fetch('https://api.dashamail.com/v2/reports/501233/events?event_type=CLICKED&time_start=2026-04-05+00%3A00%3A00&limit=2', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
});
const payload = await response.json();
if (!response.ok) throw new Error(payload.error.message);
console.log(payload.response.data);
{
"response": {
"msg": {
"err_code": 0,
"text": "OK",
"type": "message"
},
"data": [
{
"event_time": "2026-04-05 10:02:11",
"event_type": "CLICKED",
"email": "ivan@example.com",
"url_original": "https://example.ru/sale",
"device": "PC",
"browser": "Chrome"
},
{
"event_time": "2026-04-05 10:04:55",
"event_type": "CLICKED",
"email": "maria@example.com",
"url_original": "https://example.ru/sale",
"device": "Mobile",
"browser": "Safari"
}
]
}
}
Клики по ссылкам #
GET
/reports/{campaign_id}/clickstat
Сколько раз кликнули по каждой ссылке письма, от популярных к редким.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
campaign_id обязательный | integer | Идентификатор рассылки. |
Возможные ошибки
| HTTP | code | Когда возникает |
|---|---|---|
404 |
22 |
Рассылки с таким campaign_id нет |
404 |
4 |
Кликов не было |
curl -X GET 'https://api.dashamail.com/v2/reports/501233/clickstat' \
-H 'Authorization: Bearer YOUR_API_KEY'
<?php
$ch = curl_init('https://api.dashamail.com/v2/reports/501233/clickstat');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
],
]);
$response = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status >= 400) {
throw new RuntimeException($response['error']['message']);
}
print_r($response['response']['data']);
import requests
response = requests.get(
'https://api.dashamail.com/v2/reports/501233/clickstat',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
response.raise_for_status()
print(response.json()['response']['data'])
const response = await fetch('https://api.dashamail.com/v2/reports/501233/clickstat', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
});
const payload = await response.json();
if (!response.ok) throw new Error(payload.error.message);
console.log(payload.response.data);
{
"response": {
"msg": {
"err_code": 0,
"text": "OK",
"type": "message"
},
"data": [
{
"url": "https://example.ru/sale",
"clicks": 121
},
{
"url": "https://example.ru/catalog",
"clicks": 47
}
]
}
}
Кто кликнул по ссылке #
GET
/reports/{campaign_id}/userclicks
Подписчики, кликнувшие по указанной ссылке, со временем клика. Выборка ограничена последним годом.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
campaign_id обязательный | integer | Идентификатор рассылки. |
Параметры строки запроса
| Параметр | Тип | Описание |
|---|---|---|
url обязательный | string | Ссылка целиком, в точности как в отчёте по кликам. |
Возможные ошибки
| HTTP | code | Когда возникает |
|---|---|---|
422 |
3 |
Не передан url |
404 |
4 |
Кликов по этой ссылке не было |
curl -X GET 'https://api.dashamail.com/v2/reports/501233/userclicks?url=https%3A%2F%2Fexample.ru%2Fsale' \
-H 'Authorization: Bearer YOUR_API_KEY'
<?php
$ch = curl_init('https://api.dashamail.com/v2/reports/501233/userclicks?url=https%3A%2F%2Fexample.ru%2Fsale');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
],
]);
$response = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status >= 400) {
throw new RuntimeException($response['error']['message']);
}
print_r($response['response']['data']);
import requests
response = requests.get(
'https://api.dashamail.com/v2/reports/501233/userclicks?url=https%3A%2F%2Fexample.ru%2Fsale',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
response.raise_for_status()
print(response.json()['response']['data'])
const response = await fetch('https://api.dashamail.com/v2/reports/501233/userclicks?url=https%3A%2F%2Fexample.ru%2Fsale', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
});
const payload = await response.json();
if (!response.ok) throw new Error(payload.error.message);
console.log(payload.response.data);
{
"response": {
"msg": {
"err_code": 0,
"text": "OK",
"type": "message"
},
"data": [
{
"url": "https://example.ru/sale",
"email": "ivan@example.com",
"click_time": "2026-04-05 10:02:11"
}
]
}
}
Возвраты по кодам #
GET
/reports/{campaign_id}/bouncestat
Группировка возвратов по SMTP-кодам с расшифровкой. Помогает понять, дело в несуществующих адресах или в репутации отправителя.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
campaign_id обязательный | integer | Идентификатор рассылки. |
Возможные ошибки
| HTTP | code | Когда возникает |
|---|---|---|
404 |
4 |
Возвратов не было |
curl -X GET 'https://api.dashamail.com/v2/reports/501233/bouncestat' \
-H 'Authorization: Bearer YOUR_API_KEY'
<?php
$ch = curl_init('https://api.dashamail.com/v2/reports/501233/bouncestat');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
],
]);
$response = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status >= 400) {
throw new RuntimeException($response['error']['message']);
}
print_r($response['response']['data']);
import requests
response = requests.get(
'https://api.dashamail.com/v2/reports/501233/bouncestat',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
response.raise_for_status()
print(response.json()['response']['data'])
const response = await fetch('https://api.dashamail.com/v2/reports/501233/bouncestat', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
});
const payload = await response.json();
if (!response.ok) throw new Error(payload.error.message);
console.log(payload.response.data);
{
"response": {
"msg": {
"err_code": 0,
"text": "OK",
"type": "message"
},
"data": [
{
"bounce_code": "5.1.1",
"count": 9,
"description": "Bad destination mailbox address"
},
{
"bounce_code": "5.2.2",
"count": 3,
"description": "Mailbox full"
}
]
}
}
Показатели по доменам #
GET
/reports/{campaign_id}/domains
Доставляемость и вовлечённость в разрезе почтовых провайдеров. Проседание по одному домену обычно означает проблему с репутацией именно у него.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
campaign_id обязательный | integer | Идентификатор рассылки. |
Параметры строки запроса
| Параметр | Тип | Описание |
|---|---|---|
time_start | datetime | Начало периода. |
time_end | datetime | Конец периода. |
start | integerпо умолчанию: 0 | Смещение. |
limit | integerпо умолчанию: 100 | Размер страницы. |
order_field | stringпо умолчанию: sent | Поле сортировки. |
order_type | stringпо умолчанию: desc | Направление сортировки. Допустимые значения: asc, desc |
Возможные ошибки
| HTTP | code | Когда возникает |
|---|---|---|
404 |
4 |
Данных за период нет |
curl -X GET 'https://api.dashamail.com/v2/reports/501233/domains' \
-H 'Authorization: Bearer YOUR_API_KEY'
<?php
$ch = curl_init('https://api.dashamail.com/v2/reports/501233/domains');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
],
]);
$response = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status >= 400) {
throw new RuntimeException($response['error']['message']);
}
print_r($response['response']['data']);
import requests
response = requests.get(
'https://api.dashamail.com/v2/reports/501233/domains',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
response.raise_for_status()
print(response.json()['response']['data'])
const response = await fetch('https://api.dashamail.com/v2/reports/501233/domains', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
});
const payload = await response.json();
if (!response.ok) throw new Error(payload.error.message);
console.log(payload.response.data);
{
"response": {
"msg": {
"err_code": 0,
"text": "OK",
"type": "message"
},
"data": [
{
"domain": "mail.ru",
"sent": 612,
"opened": 380,
"unique_opened": 254,
"clicked": 71,
"unique_clicked": 55,
"complained": 1,
"unsubsribed": 3
},
{
"domain": "yandex.ru",
"sent": 431,
"opened": 268,
"unique_opened": 190,
"clicked": 63,
"unique_clicked": 47,
"complained": 0,
"unsubsribed": 2
}
]
}
}
География открытий #
GET
/reports/{campaign_id}/geo
Распределение событий по регионам. Ключ — код региона, значение — количество событий.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
campaign_id обязательный | integer | Идентификатор рассылки. |
Возможные ошибки
| HTTP | code | Когда возникает |
|---|---|---|
404 |
4 |
Данных нет |
curl -X GET 'https://api.dashamail.com/v2/reports/501233/geo' \
-H 'Authorization: Bearer YOUR_API_KEY'
<?php
$ch = curl_init('https://api.dashamail.com/v2/reports/501233/geo');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
],
]);
$response = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status >= 400) {
throw new RuntimeException($response['error']['message']);
}
print_r($response['response']['data']);
import requests
response = requests.get(
'https://api.dashamail.com/v2/reports/501233/geo',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
response.raise_for_status()
print(response.json()['response']['data'])
const response = await fetch('https://api.dashamail.com/v2/reports/501233/geo', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
});
const payload = await response.json();
if (!response.ok) throw new Error(payload.error.message);
console.log(payload.response.data);
{
"response": {
"msg": {
"err_code": 0,
"text": "OK",
"type": "message"
},
"data": {
"77": 412,
"78": 133,
"16": 51
}
}
}
Почтовые клиенты и устройства #
GET
/reports/{campaign_id}/clients
Чем получатели читают письмо: браузеры, десктопные клиенты, мобильные устройства. Полезно перед изменением вёрстки.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
campaign_id обязательный | integer | Идентификатор рассылки. |
Возможные ошибки
| HTTP | code | Когда возникает |
|---|---|---|
404 |
4 |
Открытий и кликов не было |
curl -X GET 'https://api.dashamail.com/v2/reports/501233/clients' \
-H 'Authorization: Bearer YOUR_API_KEY'
<?php
$ch = curl_init('https://api.dashamail.com/v2/reports/501233/clients');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
],
]);
$response = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status >= 400) {
throw new RuntimeException($response['error']['message']);
}
print_r($response['response']['data']);
import requests
response = requests.get(
'https://api.dashamail.com/v2/reports/501233/clients',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
response.raise_for_status()
print(response.json()['response']['data'])
const response = await fetch('https://api.dashamail.com/v2/reports/501233/clients', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
});
const payload = await response.json();
if (!response.ok) throw new Error(payload.error.message);
console.log(payload.response.data);
{
"response": {
"msg": {
"err_code": 0,
"text": "OK",
"type": "message"
},
"data": {
"chrome": 210,
"safari": 122,
"firefox": 44,
"yandexbrowser": 88,
"opera": 12,
"ie": 3,
"other": 19,
"browsers": 498
}
}
}
Коды подтверждения #
GET
/reports/{campaign_id}/codes
Одноразовые коды, разосланные в рамках рассылки, с адресами получателей и временем выдачи.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
campaign_id обязательный | integer | Идентификатор рассылки. |
Параметры строки запроса
| Параметр | Тип | Описание |
|---|---|---|
start | integerпо умолчанию: 0 | Смещение. |
limit | integerпо умолчанию: 100 | Размер страницы. |
order | stringпо умолчанию: id desc | Сортировка. |
Возможные ошибки
| HTTP | code | Когда возникает |
|---|---|---|
404 |
4 |
Кодов нет |
curl -X GET 'https://api.dashamail.com/v2/reports/501233/codes' \
-H 'Authorization: Bearer YOUR_API_KEY'
<?php
$ch = curl_init('https://api.dashamail.com/v2/reports/501233/codes');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
],
]);
$response = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status >= 400) {
throw new RuntimeException($response['error']['message']);
}
print_r($response['response']['data']);
import requests
response = requests.get(
'https://api.dashamail.com/v2/reports/501233/codes',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
response.raise_for_status()
print(response.json()['response']['data'])
const response = await fetch('https://api.dashamail.com/v2/reports/501233/codes', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
});
const payload = await response.json();
if (!response.ok) throw new Error(payload.error.message);
console.log(payload.response.data);
{
"response": {
"msg": {
"err_code": 0,
"text": "OK",
"type": "message"
},
"data": [
{
"email": "ivan@example.com",
"code": "481920",
"date": "2026-04-05 10:00:12"
}
]
}
}