Ресурс sends. Поля рассылки:
| Поле | Значение |
|---|---|
id | Номер рассылки. |
letter_title | Тема письма. |
maket_id | Макет письма. |
count | Сколько получателей. |
date | Время начала отправки. |
status | 0 запланирована, ещё не начата; 1 идёт (так бывает и некоторое время после окончания, пока собирается статистика); 4 завершена. Значения 2 и 3 (сбор и уточнение статистики) предусмотрены, но сейчас не встречаются. |
sender_email_id | Отправитель. |
included_lists, excluded_lists | Группы получателей и исключённые группы. |
GET/mailer/sends.json
Список рассылок
Поля по умолчанию: id, letter_title. Фильтр: maket_id, count, status, date с ключами start_date и end_date. Сортировка: date.
curl -G https://v1.estismail.com/mailer/sends.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" \
-d sort_field=date -d sort_direction=-1 -d limit=5 \
--data-urlencode 'fields=["id","letter_title","date","status","count"]'<?php
$query = http_build_query([
'sort_field' => 'date',
'sort_direction' => '-1',
'limit' => '5',
'fields' => '["id","letter_title","date","status","count"]',
]);
$ch = curl_init('https://v1.estismail.com/mailer/sends.json' . '?' . $query);
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['X-Estis-Auth: ВАШ_КЛЮЧ'],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), "\n", $response;import requests
r = requests.get(
"https://v1.estismail.com/mailer/sends.json",
headers={"X-Estis-Auth": "ВАШ_КЛЮЧ"},
params={
"sort_field": "date",
"sort_direction": "-1",
"limit": "5",
"fields": '["id","letter_title","date","status","count"]',
},
)
print(r.status_code, r.text)const params = new URLSearchParams({
sort_field: "date",
sort_direction: "-1",
limit: "5",
fields: '["id","letter_title","date","status","count"]',
});
const res = await fetch("https://v1.estismail.com/mailer/sends.json?" + params, {
headers: { "X-Estis-Auth": "ВАШ_КЛЮЧ" },
});
console.log(res.status, await res.text());Ответ 200
{
"sends": [
{
"id": 290700,
"count": 1520,
"date": 1760005200,
"status": 4,
"letter_title": "Октябрьская распродажа"
}
]
}GET/mailer/sends/{id}.json
Одна рассылка
curl -G https://v1.estismail.com/mailer/sends/290700.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" \
--data-urlencode 'fields=["id","letter_title","status","included_lists","excluded_lists"]'<?php
$query = http_build_query([
'fields' => '["id","letter_title","status","included_lists","excluded_lists"]',
]);
$ch = curl_init('https://v1.estismail.com/mailer/sends/290700.json' . '?' . $query);
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['X-Estis-Auth: ВАШ_КЛЮЧ'],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), "\n", $response;import requests
r = requests.get(
"https://v1.estismail.com/mailer/sends/290700.json",
headers={"X-Estis-Auth": "ВАШ_КЛЮЧ"},
params={
"fields": '["id","letter_title","status","included_lists","excluded_lists"]',
},
)
print(r.status_code, r.text)const params = new URLSearchParams({
fields: '["id","letter_title","status","included_lists","excluded_lists"]',
});
const res = await fetch("https://v1.estismail.com/mailer/sends/290700.json?" + params, {
headers: { "X-Estis-Auth": "ВАШ_КЛЮЧ" },
});
console.log(res.status, await res.text());Ответ 200
{
"id": 290700,
"status": 4,
"letter_title": "Октябрьская распродажа",
"included_lists": [
12345,
12346
],
"excluded_lists": []
}POST/mailer/sends.json
Создать рассылку
| Параметр | Значение |
|---|---|
maket_id обязательный | Ваш макет. |
letter_title обязательный | Тема письма. |
included_lists обязательный | JSON-массив номеров групп, например [12345,12346]. [0] означает все группы. |
excluded_lists | JSON-массив групп, чьим участникам письмо не отправлять. |
sender_email_id | Рабочий адрес отправителя (approved 1). Без него берётся основной адрес. Рабочего адреса нет: ошибка 21115. |
date | Когда начать, время unix. Без него или в прошлом рассылка начнётся в течение минуты. |
Письмо получат только активные подписчики выбранных групп, каждый один раз. Подвал с отпиской добавляется сам.
curl https://v1.estismail.com/mailer/sends.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" \
-d maket_id=4321 -d letter_title="Октябрьская распродажа" \
-d included_lists='[12345]' -d date=1760005200<?php
$ch = curl_init('https://v1.estismail.com/mailer/sends.json');
curl_setopt_array($ch, [
CURLOPT_POSTFIELDS => http_build_query([
'maket_id' => '4321',
'letter_title' => 'Октябрьская распродажа',
'included_lists' => '[12345]',
'date' => '1760005200',
]),
CURLOPT_HTTPHEADER => ['X-Estis-Auth: ВАШ_КЛЮЧ'],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), "\n", $response;import requests
r = requests.post(
"https://v1.estismail.com/mailer/sends.json",
headers={"X-Estis-Auth": "ВАШ_КЛЮЧ"},
data={
"maket_id": "4321",
"letter_title": "Октябрьская распродажа",
"included_lists": "[12345]",
"date": "1760005200",
},
)
print(r.status_code, r.text)const res = await fetch("https://v1.estismail.com/mailer/sends.json", {
method: "POST",
headers: { "X-Estis-Auth": "ВАШ_КЛЮЧ" },
body: new URLSearchParams({
maket_id: "4321",
letter_title: "Октябрьская распродажа",
included_lists: "[12345]",
date: "1760005200",
}),
});
console.log(res.status, await res.text());Ответ 201: номер рассылки
{"id":290701}DELETE/mailer/sends/{id}.json
Отменить запланированную рассылку
Только пока рассылка не началась. Начатую остановить через API нельзя: ошибка 20580.
curl -X DELETE https://v1.estismail.com/mailer/sends/290701.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ"<?php
$ch = curl_init('https://v1.estismail.com/mailer/sends/290701.json');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => ['X-Estis-Auth: ВАШ_КЛЮЧ'],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), "\n", $response;import requests
r = requests.delete(
"https://v1.estismail.com/mailer/sends/290701.json",
headers={"X-Estis-Auth": "ВАШ_КЛЮЧ"},
)
print(r.status_code, r.text)const res = await fetch("https://v1.estismail.com/mailer/sends/290701.json", {
method: "DELETE",
headers: { "X-Estis-Auth": "ВАШ_КЛЮЧ" },
});
console.log(res.status, await res.text());Ответ 204, без тела
Вопросы по API: support@estismail.com