API Estismail

Рассылки из вашего сайта, CRM или приложения: загрузите макет, соберите получателей, запустите рассылку и заберите статистику. Без входа в кабинет.

Адрес
https://v1.estismail.com/mailer/
Ключ
заголовок X-Estis-Auth
Формат
JSON или XML, UTF-8

Ресурсы

Как устроен API

Через API ваш сайт или CRM работает с аккаунтом без входа в кабинет: загружает макеты, ведёт группы и подписчиков, создаёт рассылки и забирает статистику.

  • Адрес списка: https://v1.estismail.com/mailer/<ресурс>.json, одного объекта: https://v1.estismail.com/mailer/<ресурс>/<номер>.json. Только HTTPS.
  • Ключ передаётся в заголовке каждого запроса: X-Estis-Auth: ВАШ_КЛЮЧ. Ключ лежит в кабинете, в разделе API. Без ключа или с неверным ключом ответ 401.
  • Ответ приходит в JSON. Чтобы получить XML, замените .json на .xml.
  • GET получает данные, POST создаёт, PUT изменяет, DELETE удаляет.
  • Параметры GET передаются в строке запроса. Параметры POST, PUT и DELETE передаются в теле: как форма (application/x-www-form-urlencoded) или как JSON (Content-Type: application/json). Кодировка UTF-8.
  • Неизвестные параметры не вызывают ошибку: API их не учитывает.
  • Даты в ответах и фильтрах указываются как время unix в секундах.
  • Через API видны и меняются только данные вашего аккаунта. Чужой номер даёт 404.

Первый запрос: проверить ключ

curl https://v1.estismail.com/mailer/users.json \
  -H "X-Estis-Auth: ВАШ_КЛЮЧ"
Ответ 200
{
  "user": {
    "login": "shop"
  }
}

Списки: страницы, поля, фильтры

Запросы списков (GET без номера) принимают общие параметры. Какие поля, фильтры и сортировки есть у ресурса, написано в его разделе.

ПараметрЗначение
limitСколько записей вернуть: от 1 до 100, по умолчанию 10. Больше 100 даёт 100, меньше 1 даёт 10.
pageНомер страницы, начиная с 1. Страница за последней: у подписчиков ответ 204, у остальных ресурсов 404.
fieldsКакие поля вернуть: JSON-массив, например ["id","title","status"]. Без него приходит набор полей по умолчанию. Неизвестные поля пропускаются.
filterОтбор по точному совпадению: JSON-объект, например {"status":0}.
sort_fieldПоле сортировки. По умолчанию записи идут по номеру.
sort_direction-1 по убыванию, иначе по возрастанию.

Пример: вторая страница по 20 подписчиков группы 12345, нужные поля

curl -G https://v1.estismail.com/mailer/emails.json \
  -H "X-Estis-Auth: ВАШ_КЛЮЧ" \
  -d list_id=12345 -d limit=20 -d page=2 \
  --data-urlencode 'fields=["id","email","name","status"]'

Запрос одного объекта (GET с номером) принимает только fields.

Ответы

КодКогда
200Данные получены.
201Объект создан. В ответе его номер: {"id":12345}.
204Выполнено, тела у ответа нет. Так же отвечает пустая выборка.
400Ошибка в параметрах. В тексте номер ошибки и ссылка на её описание в разделе Ошибки.
401Нет ключа или ключ неверный.
404Объекта нет или он не из вашего аккаунта. Так же отвечает неизвестный адрес.
405Ресурс не поддерживает этот метод.
500, 503Только у удаления подписчика: удаление не выполнено, повторите через несколько секунд.
Ответ 400
{
  "name": "Error #20140: Invalid email. Check the validity of the specified email. Details: https://my.estismail.com/settings/api#error_20140",
  "message": "Error #20140: Invalid email. Check the validity of the specified email. Details: https://my.estismail.com/settings/api#error_20140",
  "url": "/mailer/emails.json"
}

Пределы

  • До 100 записей за один запрос списка.
  • До 10 отправителей в аккаунте.
  • Подписчики добавляются без ограничения числа. По умолчанию новому адресу уходит письмо подтверждения; добавить без письма можно на тарифах Premium и Enterprise. Импортом: до 1000 адресов за запрос, с той же проверкой группы, что у импорта файла в кабинете. Если подписчиков стало больше, чем позволяет тариф, отправка закрывается так же, как в кабинете.
  • Рассылка через API проходит те же проверки, что в кабинете: отправка не закрыта, получателей не больше, чем подписчиков в тарифе, на тарифах Premium и Enterprise отправитель на своём домене.
  • Серии писем: до 100 шагов, до 50 групп входа, до 1000 адресов за один запрос добавления в серию.
  • Отдельного ограничения частоты запросов нет.

Вопросы по API: support@estismail.com