Ресурс emails. Поля подписчика:
| Поле | Значение |
|---|---|
id | Номер подписчика. |
email | Адрес. |
name, last_name, city, phone | Имя, фамилия, город, телефон. |
telegram | Телеграм. Прежнее имя skype тоже работает. |
ip | IP-адрес, с которого подписался. |
subscribe_link | Страница, где подписался. |
date | Дата подписки. При запросе с list_id дата вступления в эту группу. |
status | 0 активен, 1 заблокирован, 2 отписался, 3 не подтвердил подписку. Письма получают только активные. |
| ключ своего поля | Значение своего поля, которое вы завели в кабинете. Ключи и типы: Поля подписчика. |
GET/mailer/emails.json
Список подписчиков
Без list_id отдаёт всех подписчиков аккаунта, с list_id только участников группы. Поля по умолчанию: id, email. Фильтр: email, status (число), date с ключами start_date и end_date. Сортировка: email, date, status.
Свои поля и фамилия приходят так же, как у одного подписчика: если перечислить их в fields, в каждой строке {"emails":[{…},{…}]}.
curl -G https://v1.estismail.com/mailer/emails.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" \
-d list_id=12345 \
--data-urlencode 'fields=["id","email","status","date"]' \
--data-urlencode 'filter={"status":0}'<?php
$query = http_build_query([
'list_id' => '12345',
'fields' => '["id","email","status","date"]',
'filter' => '{"status":0}',
]);
$ch = curl_init('https://v1.estismail.com/mailer/emails.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/emails.json",
headers={"X-Estis-Auth": "ВАШ_КЛЮЧ"},
params={
"list_id": "12345",
"fields": '["id","email","status","date"]',
"filter": '{"status":0}',
},
)
print(r.status_code, r.text)const params = new URLSearchParams({
list_id: "12345",
fields: '["id","email","status","date"]',
filter: '{"status":0}',
});
const res = await fetch("https://v1.estismail.com/mailer/emails.json?" + params, {
headers: { "X-Estis-Auth": "ВАШ_КЛЮЧ" },
});
console.log(res.status, await res.text());{
"emails": [
{
"id": 67890,
"email": "anna@example.com",
"date": 1760000000,
"status": 0
}
]
}GET/mailer/emails/{id}.json
Один подписчик
Принимает fields и list_id: с ним date будет датой вступления в группу.
В fields можно перечислить ключи своих полей ("crm_id") или "custom_fields", тогда придут все ваши поля, а также "last_name", "telegram", "subscribe_url", "subscribe_date". Поле приходит тем именем, которым его спросили. Если значения нет, приходит null. Без этих имён в fields ответ прежний.
curl -G https://v1.estismail.com/mailer/emails/67890.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" \
--data-urlencode 'fields=["id","email","name","status","date"]'<?php
$query = http_build_query([
'fields' => '["id","email","name","status","date"]',
]);
$ch = curl_init('https://v1.estismail.com/mailer/emails/67890.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/emails/67890.json",
headers={"X-Estis-Auth": "ВАШ_КЛЮЧ"},
params={
"fields": '["id","email","name","status","date"]',
},
)
print(r.status_code, r.text)const params = new URLSearchParams({
fields: '["id","email","name","status","date"]',
});
const res = await fetch("https://v1.estismail.com/mailer/emails/67890.json?" + params, {
headers: { "X-Estis-Auth": "ВАШ_КЛЮЧ" },
});
console.log(res.status, await res.text());{
"id": 67890,
"email": "anna@example.com",
"name": "Анна",
"date": 1760000000,
"status": 0
}Со своими полями и фамилией
curl -G https://v1.estismail.com/mailer/emails/267950001.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" \
--data-urlencode 'fields=["id","email","name","last_name","custom_fields"]'<?php
$q = http_build_query(['fields' => json_encode(['id', 'email', 'name', 'last_name', 'custom_fields'])]);
$ch = curl_init('https://v1.estismail.com/mailer/emails/267950001.json?' . $q);
curl_setopt_array($ch, [CURLOPT_HTTPHEADER => ['X-Estis-Auth: ВАШ_КЛЮЧ'], CURLOPT_RETURNTRANSFER => true]);
$subscriber = json_decode(curl_exec($ch), true);
curl_close($ch);import json
import requests
r = requests.get('https://v1.estismail.com/mailer/emails/267950001.json',
headers={'X-Estis-Auth': 'ВАШ_КЛЮЧ'},
params={'fields': json.dumps(['id', 'email', 'name', 'last_name', 'custom_fields'])})
subscriber = r.json()const q = new URLSearchParams({ fields: JSON.stringify(['id', 'email', 'name', 'last_name', 'custom_fields']) });
const r = await fetch('https://v1.estismail.com/mailer/emails/267950001.json?' + q, {
headers: { 'X-Estis-Auth': 'ВАШ_КЛЮЧ' }
});
const subscriber = await r.json();{
"id": 267950001,
"name": "Олена",
"email": "olena@example.com",
"last_name": "Коваленко-Бойко",
"crm_id": "A-2001",
"birthday": null
}POST/mailer/emails.json
Добавить подписчика в группу
| Параметр | Значение |
|---|---|
email обязательный | Адрес подписчика. |
list_id обязательный | Номер вашей группы. |
name, city, phone | Имя, город, телефон. |
last_name | Фамилия, до 250 знаков. |
telegram | Телеграм, до 100 знаков. Прежнее имя skype тоже работает. |
ip | IP-адрес подписчика. |
subscribe_url | Страница, где подписался. Без неё берётся адрес из группы. Прежнее имя subscribe_link тоже работает. |
| ключ своего поля | Значение по правилам типа поля, раздел Поля подписчика. |
activation_letter | 0 добавить без письма «подтвердите подписку»: новый адрес сразу активен (отписавшийся и заблокированный, как и раньше, только через письмо). Только на тарифах Premium и Enterprise; на Free письмо уходит всегда. Без параметра письмо уходит на любом тарифе. Много адресов без письма за раз: импорт, ниже в этом разделе. |
skype_update | 1 записать новый Телеграм, если подписчик уже есть. |
- Нового адреса нет в аккаунте: он сохраняется со статусом 3, ему уходит письмо «подтвердите подписку»; после подтверждения статус 0.
- Адрес уже активен: он сразу входит в группу, письма нет.
- Адрес отписался или заблокирован: он входит в группу только через письмо подтверждения.
- Адрес в вашем чёрном списке: ответ 201, но адрес остаётся заблокированным.
- Адрес уже активен в этой группе: ошибка 20142.
Как записываются поля:
- Новому адресу записывается всё переданное.
- Если адрес уже есть у вас в другой группе, он встаёт в группу, а переданные непустые имя, фамилия, город, телефон, Телеграм и свои поля перезаписываются.
- Пустое значение своего поля в
POSTпропускается и ничего не стирает (стираетPUT). - Если адрес активен и уже стоит в этой группе, ответ 400 20142, как раньше, и ничего не записано.
Ключи и значения проверяются до записи: на неизвестный ключ ответ 20147, на неверное значение 20148. Если подписчик сохранён, а значения своих полей записать не удалось (сбой базы), ответ 400 20149 с номером подписчика: адрес добавлен, повторите поля запросом PUT /mailer/emails/{id}.
curl https://v1.estismail.com/mailer/emails.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" \
-d email=anna@example.com -d list_id=12345 -d name="Анна"<?php
$ch = curl_init('https://v1.estismail.com/mailer/emails.json');
curl_setopt_array($ch, [
CURLOPT_POSTFIELDS => http_build_query([
'email' => 'anna@example.com',
'list_id' => '12345',
'name' => 'Анна',
]),
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/emails.json",
headers={"X-Estis-Auth": "ВАШ_КЛЮЧ"},
data={
"email": "anna@example.com",
"list_id": "12345",
"name": "Анна",
},
)
print(r.status_code, r.text)const res = await fetch("https://v1.estismail.com/mailer/emails.json", {
method: "POST",
headers: { "X-Estis-Auth": "ВАШ_КЛЮЧ" },
body: new URLSearchParams({
email: "anna@example.com",
list_id: "12345",
name: "Анна",
}),
});
console.log(res.status, await res.text());{"id":67890}С фамилией и своими полями, тело в JSON
curl -X POST https://v1.estismail.com/mailer/emails.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{"email":"olena@example.com","list_id":134472,"name":"Олена","last_name":"Коваленко",
"crm_id":"A-1042","birthday":"1990-05-17","activation_letter":0}'<?php
$ch = curl_init('https://v1.estismail.com/mailer/emails.json');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['X-Estis-Auth: ВАШ_КЛЮЧ', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'email' => 'olena@example.com', 'list_id' => 134472, 'name' => 'Олена', 'last_name' => 'Коваленко',
'crm_id' => 'A-1042', 'birthday' => '1990-05-17', 'activation_letter' => 0,
]),
CURLOPT_RETURNTRANSFER => true,
]);
$id = json_decode(curl_exec($ch), true)['id'];
curl_close($ch);import requests
r = requests.post('https://v1.estismail.com/mailer/emails.json',
headers={'X-Estis-Auth': 'ВАШ_КЛЮЧ'},
json={'email': 'olena@example.com', 'list_id': 134472, 'name': 'Олена',
'last_name': 'Коваленко', 'crm_id': 'A-1042', 'birthday': '1990-05-17',
'activation_letter': 0})
subscriber_id = r.json()['id']const r = await fetch('https://v1.estismail.com/mailer/emails.json', {
method: 'POST',
headers: { 'X-Estis-Auth': 'ВАШ_КЛЮЧ', 'Content-Type': 'application/json' },
body: JSON.stringify({
email: 'olena@example.com', list_id: 134472, name: 'Олена', last_name: 'Коваленко',
crm_id: 'A-1042', birthday: '1990-05-17', activation_letter: 0
})
});
const { id } = await r.json();{"id":267950001}POST/mailer/imports.json
Импорт: до 1000 адресов за запрос
Тот же путь, что импорт файла в кабинете: адреса встают в очередь импорта и добавляются в группу в течение нескольких минут, без писем подтверждения. Неверные адреса, повторы, адреса из чёрного списка и уже состоящие в группе пропускаются. Не ввозятся и одноразовые адреса, и адреса доменов без почты (у домена нет ни MX, ни A). Явные опечатки популярных доменов исправляются: gmial.com станет gmail.com.
Поля чистятся так же, как при импорте файла: из имени, города, телефона и Телеграма убираются знаки = ' " / \, переводы строк и табуляция; текст обрезается до 250 знаков, Телеграм до 100. IP принимается только вида IPv4, иначе остаётся пустым. В телефоне из одних цифр плюс в начале не сохраняется; телефон с пробелами остаётся как есть.
| Параметр | Значение |
|---|---|
list_id обязательный | Номер вашей группы. Группа на проверке модератором импорт не принимает. |
emails обязательный | JSON-массив от 1 до 1000 элементов. Элемент: адрес строкой или объект с полями email, name, last_name (фамилия), city, phone, ip, telegram (то же, что skype) и свои поля по ключу. |
Если в аккаунте нет доверенного импорта и тариф не Enterprise, группа уходит на проверку модератором, как после импорта файла в кабинете; рассылать по ней можно после одобрения.
Как записываются свои поля и фамилия:
- Значения своих полей пишутся новым подписчикам и тем, кто уже был у вас и добавлен импортом в группу.
- Кто уже стоял в этой группе, импорт пропускает целиком, как раньше; поменять поля таким подписчикам можно пачкой
PUT /mailer/emails. - Пустое значение не пишется.
- Обратная косая черта
\в значениях своих полей при импорте вырезается.
Проверка идёт до создания импорта: на неизвестный ключ в строке N ответ 400 21004, на неверное значение 21005. Импорт тогда не создаётся.
curl https://v1.estismail.com/mailer/imports.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" \
-d list_id=12345 \
--data-urlencode 'emails=["anna@example.com",{"email":"oleg@example.com","name":"Олег","city":"Прага"}]'<?php
$ch = curl_init('https://v1.estismail.com/mailer/imports.json');
curl_setopt_array($ch, [
CURLOPT_POSTFIELDS => http_build_query([
'list_id' => '12345',
'emails' => '["anna@example.com",{"email":"oleg@example.com","name":"Олег","city":"Прага"}]',
]),
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/imports.json",
headers={"X-Estis-Auth": "ВАШ_КЛЮЧ"},
data={
"list_id": "12345",
"emails": '["anna@example.com",{"email":"oleg@example.com","name":"Олег","city":"Прага"}]',
},
)
print(r.status_code, r.text)const res = await fetch("https://v1.estismail.com/mailer/imports.json", {
method: "POST",
headers: { "X-Estis-Auth": "ВАШ_КЛЮЧ" },
body: new URLSearchParams({
list_id: "12345",
emails: '["anna@example.com",{"email":"oleg@example.com","name":"Олег","city":"Прага"}]',
}),
});
console.log(res.status, await res.text());{"id":19230}С фамилией и своими полями, тело в JSON
curl -X POST https://v1.estismail.com/mailer/imports.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{"list_id":134472,"emails":[
{"email":"anna@example.com","name":"Анна","last_name":"Коваль","crm_id":"A-3001"},
"oleg@example.com"
]}'<?php
$ch = curl_init('https://v1.estismail.com/mailer/imports.json');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['X-Estis-Auth: ВАШ_КЛЮЧ', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['list_id' => 134472, 'emails' => [
['email' => 'anna@example.com', 'name' => 'Анна', 'last_name' => 'Коваль', 'crm_id' => 'A-3001'],
'oleg@example.com',
]]),
CURLOPT_RETURNTRANSFER => true,
]);
$import_id = json_decode(curl_exec($ch), true)['id'];
curl_close($ch);import requests
r = requests.post('https://v1.estismail.com/mailer/imports.json',
headers={'X-Estis-Auth': 'ВАШ_КЛЮЧ'},
json={'list_id': 134472, 'emails': [
{'email': 'anna@example.com', 'name': 'Анна', 'last_name': 'Коваль', 'crm_id': 'A-3001'},
'oleg@example.com',
]})
import_id = r.json()['id']const r = await fetch('https://v1.estismail.com/mailer/imports.json', {
method: 'POST',
headers: { 'X-Estis-Auth': 'ВАШ_КЛЮЧ', 'Content-Type': 'application/json' },
body: JSON.stringify({ list_id: 134472, emails: [
{ email: 'anna@example.com', name: 'Анна', last_name: 'Коваль', crm_id: 'A-3001' },
'oleg@example.com'
] })
});
const { id } = await r.json();{"id":19300}GET/mailer/imports/{id}.json
Состояние импорта
status: queued в очереди, processing идёт, done готово (в added сколько адресов добавлено), error не удалось. moderation: группа на проверке модератором.
У готового импорта ещё fixed_domains: сколько адресов добавлено с исправленной опечаткой в домене, и skipped: сколько не ввезено и почему. no_mail у домена нет почты, disposable одноразовый адрес, invalid неверный адрес, duplicates повтор в списке или уже в группе, blacklist в чёрном списке.
curl https://v1.estismail.com/mailer/imports/19230.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ"<?php
$ch = curl_init('https://v1.estismail.com/mailer/imports/19230.json');
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/imports/19230.json",
headers={"X-Estis-Auth": "ВАШ_КЛЮЧ"},
)
print(r.status_code, r.text)const res = await fetch("https://v1.estismail.com/mailer/imports/19230.json", {
headers: { "X-Estis-Auth": "ВАШ_КЛЮЧ" },
});
console.log(res.status, await res.text());{
"id": 19230,
"list_id": 12345,
"status": "done",
"moderation": false,
"added": 2,
"fixed_domains": 1,
"skipped": {
"no_mail": 1,
"disposable": 0,
"invalid": 0,
"duplicates": 0,
"blacklist": 0
}
}PUT/mailer/emails/{id}.json
Изменить данные подписчика
Меняются name, last_name, city, phone, telegram (или skype) и свои поля по ключу. Адрес и статус через API не меняются.
- Переданное значение записывается, пустая строка стирает значение,
nullи поле без ключа в запросе не меняются. - Можно передать только свои поля или только фамилию: ответ 204.
- На неизвестный ключ ответ 20161, на неверное значение 20162. Обычные и свои поля записываются вместе: при ошибке в любом из них ничего не записано.
Обычные текстовые поля (name, last_name, city, phone, telegram) записываются по одному правилу, и в правке одного подписчика, и в пачке:
- таб, перевод строки и другие управляющие знаки заменяются пробелом, пробелы по краям убираются;
- значение длиннее поля обрезается: 250 знаков, у Телеграма 100;
- массив, объект,
true/falseили текст не в UTF-8 дают ошибку значения, ничего не записано.
curl -X PUT https://v1.estismail.com/mailer/emails/67890.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" \
-d city="Берлин"<?php
$ch = curl_init('https://v1.estismail.com/mailer/emails/67890.json');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS => http_build_query([
'city' => 'Берлин',
]),
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.put(
"https://v1.estismail.com/mailer/emails/67890.json",
headers={"X-Estis-Auth": "ВАШ_КЛЮЧ"},
data={
"city": "Берлин",
},
)
print(r.status_code, r.text)const res = await fetch("https://v1.estismail.com/mailer/emails/67890.json", {
method: "PUT",
headers: { "X-Estis-Auth": "ВАШ_КЛЮЧ" },
body: new URLSearchParams({
city: "Берлин",
}),
});
console.log(res.status, await res.text());Ответ 204, без тела
Фамилия и свои поля, тело в JSON
curl -X PUT https://v1.estismail.com/mailer/emails/267950001.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{"last_name":"Коваленко-Бойко","crm_id":"A-2001","birthday":""}'<?php
$ch = curl_init('https://v1.estismail.com/mailer/emails/267950001.json');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => ['X-Estis-Auth: ВАШ_КЛЮЧ', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['last_name' => 'Коваленко-Бойко', 'crm_id' => 'A-2001', 'birthday' => '']),
CURLOPT_RETURNTRANSFER => true,
]);
curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // 204
curl_close($ch);import requests
r = requests.put('https://v1.estismail.com/mailer/emails/267950001.json',
headers={'X-Estis-Auth': 'ВАШ_КЛЮЧ'},
json={'last_name': 'Коваленко-Бойко', 'crm_id': 'A-2001', 'birthday': ''})
# r.status_code == 204const r = await fetch('https://v1.estismail.com/mailer/emails/267950001.json', {
method: 'PUT',
headers: { 'X-Estis-Auth': 'ВАШ_КЛЮЧ', 'Content-Type': 'application/json' },
body: JSON.stringify({ last_name: 'Коваленко-Бойко', crm_id: 'A-2001', birthday: '' })
});
// r.status === 204Ответ 204, без тела. Здесь birthday стёрт пустой строкой.
PUT/mailer/emails.json
Изменить поля пачкой: до 1000 подписчиков
Меняет поля уже загруженным подписчикам: до 1000 за запрос.
- Тело запроса в JSON (
Content-Type: application/json), до 1 МБ. В виде формы пачка не пройдёт: сервер принимает не больше 1000 параметров формы. emailsсодержит массив. Каждая строка массива указывает подписчика (idилиemail) и что поменять:name,last_name,city,phone,telegram(илиskype) и свои поля по ключу.- Значения записываются так же, как при правке одного подписчика: пустая строка стирает значение,
nullи поле без ключа в строке ничего не меняют, обычные текстовые поля чистятся и обрезаются по одному правилу. - Группы, состояние подписчика и IP не меняются, писем нет.
- Сначала проверяется вся пачка: при ошибке в любой строке ответ 400 20164 с номером строки, и ничего не записано. Записывается одной транзакцией: всё или ничего.
- Подписчики, которых у вас нет, пропускаются и возвращаются в
not_foundтак, как вы их передали.
curl -X PUT https://v1.estismail.com/mailer/emails.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{"emails":[
{"email":"olena@example.com","city":"Прага","crm_id":"A-1042"},
{"id":267950002,"last_name":"Шевченко","birthday":"1985-01-30"},
{"email":"nobody@example.com","city":"Берлин"}
]}'<?php
$ch = curl_init('https://v1.estismail.com/mailer/emails.json');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => ['X-Estis-Auth: ВАШ_КЛЮЧ', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['emails' => [
['email' => 'olena@example.com', 'city' => 'Прага', 'crm_id' => 'A-1042'],
['id' => 267950002, 'last_name' => 'Шевченко', 'birthday' => '1985-01-30'],
['email' => 'nobody@example.com', 'city' => 'Берлин'],
]]),
CURLOPT_RETURNTRANSFER => true,
]);
$result = json_decode(curl_exec($ch), true); // ['updated' => 2, 'not_found' => ['nobody@example.com']]
curl_close($ch);import requests
r = requests.put('https://v1.estismail.com/mailer/emails.json',
headers={'X-Estis-Auth': 'ВАШ_КЛЮЧ'},
json={'emails': [
{'email': 'olena@example.com', 'city': 'Прага', 'crm_id': 'A-1042'},
{'id': 267950002, 'last_name': 'Шевченко', 'birthday': '1985-01-30'},
{'email': 'nobody@example.com', 'city': 'Берлин'},
]})
result = r.json()const r = await fetch('https://v1.estismail.com/mailer/emails.json', {
method: 'PUT',
headers: { 'X-Estis-Auth': 'ВАШ_КЛЮЧ', 'Content-Type': 'application/json' },
body: JSON.stringify({ emails: [
{ email: 'olena@example.com', city: 'Прага', crm_id: 'A-1042' },
{ id: 267950002, last_name: 'Шевченко', birthday: '1985-01-30' },
{ email: 'nobody@example.com', city: 'Берлин' }
] })
});
const result = await r.json();{
"updated": 2,
"not_found": [
"nobody@example.com"
]
}DELETE/mailer/emails/{id}.json
Удалить подписчика
- С
list_idв теле запроса подписчик выходит из этой группы. Если больше он нигде не состоит, он удаляется из аккаунта целиком. - Без
list_idподписчик удаляется из аккаунта целиком: из всех групп, с данными полей.
curl -X DELETE https://v1.estismail.com/mailer/emails/67890.json \
-H "X-Estis-Auth: ВАШ_КЛЮЧ" \
-d list_id=12345<?php
$ch = curl_init('https://v1.estismail.com/mailer/emails/67890.json');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_POSTFIELDS => http_build_query([
'list_id' => '12345',
]),
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/emails/67890.json",
headers={"X-Estis-Auth": "ВАШ_КЛЮЧ"},
data={
"list_id": "12345",
},
)
print(r.status_code, r.text)const res = await fetch("https://v1.estismail.com/mailer/emails/67890.json", {
method: "DELETE",
headers: { "X-Estis-Auth": "ВАШ_КЛЮЧ" },
body: new URLSearchParams({
list_id: "12345",
}),
});
console.log(res.status, await res.text());Ответ 204, без тела. Ответ 503 или 500: удаление не выполнено, повторите через несколько секунд.
Вопросы по API: support@estismail.com