Интеграции

API для разработчиков

REST API v1: транзакционные письма, шаблоны, suppression, вебхуки, FBL и white-label трекинг. Авторизация — API-ключ.

Аутентификация

Создайте ключ в Настройки → API-ключи и передавайте его в заголовке. Базовый адрес: https://app.working-esender.ru

Authorization: Bearer sk_live_ВАШ_КЛЮЧ
# либо
X-Api-Key: sk_live_ВАШ_КЛЮЧ

Песочница и лимиты запросов

Тестовый ключ sk_test_… проходит аутентификацию и валидацию запроса, но не выполняет реальных действий — письмо не уходит, автоматизация и push не запускаются, событие не пишется. В ответе — { "sandbox": true }. Идеально для отладки интеграции. Создать тестовый ключ: Настройки → API-ключи → «Тест».

  • Лимит live-ключа600 запросов в минуту на аккаунт
  • Лимит test-ключа120 запросов в минуту (песочница — не для боевого объёма)
  • ПревышениеHTTP 429 с заголовком Retry-After (секунды до сброса окна)
# тестовый ключ: письмо НЕ уходит, приходит смоделированный ответ
curl -X POST https://app.working-esender.ru/api/v1/emails -H "Authorization: Bearer sk_test_ВАШ_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{"to":"user@mail.ru","from":{"email":"news@ваш-домен.ru"},"subject":"Тест","text":"Привет"}'
# → { "sandbox": true, "id": "sbx_…", "to": "user@mail.ru", "subject": "Тест" }

Транзакционное письмо POST/api/v1/emails

Письмо уходит с вашего подтверждённого домена с DKIM-подписью, трекингом открытий/кликов и футером отписки. Учитывает suppression и квоту тарифа.

  • toобяз.адрес получателя
  • from.emailобяз.отправитель на подтверждённом домене (+ from.name)
  • subjectобяз.тема (поддерживает {{переменные}})
  • html | text | templateIdконтент: свой HTML, plain-text или ID шаблона из библиотеки
  • variablesобъект подстановок для {{merge-полей}} и циклов |[for]|
curl -X POST https://app.working-esender.ru/api/v1/emails \
  -H "Authorization: Bearer sk_live_ВАШ_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "client@example.ru",
    "from": { "name": "Мой магазин", "email": "shop@ваш-домен.ru" },
    "subject": "Заказ №{{order_id}} подтверждён",
    "html": "<h1>Спасибо, {{name | Друг}}!</h1>",
    "variables": { "order_id": "10245", "name": "Иван" }
  }'

Шаблоны GETPOST/api/v1/templates

Список шаблонов (id/название/папка) и создание HTML-шаблона извне — интеграции и Chrome-расширение «захват письма».

# список шаблонов
curl https://app.working-esender.ru/api/v1/templates -H "Authorization: Bearer sk_live_ВАШ_КЛЮЧ"

# создать HTML-шаблон (так работает Chrome-расширение «захват письма»)
curl -X POST https://app.working-esender.ru/api/v1/templates \
  -H "Authorization: Bearer sk_live_ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
  -d '{ "name": "Промо-письмо", "subject": "Скидки", "html": "<!doctype html>…", "folder": "Импортированные" }'

Suppression GETPOSTDELETE/api/v1/suppression

Чёрный список адресов: проверка (?email=), добавление ({ email, reason }) и снятие блокировки.

# проверить адрес / список
curl "https://app.working-esender.ru/api/v1/suppression?email=user@example.ru" \
  -H "Authorization: Bearer sk_live_ВАШ_КЛЮЧ"

# добавить в чёрный список
curl -X POST https://app.working-esender.ru/api/v1/suppression \
  -H "Authorization: Bearer sk_live_ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
  -d '{ "email": "user@example.ru", "reason": "complaint" }'

# убрать (ресабскрайб)
curl -X DELETE "https://app.working-esender.ru/api/v1/suppression?email=user@example.ru" \
  -H "Authorization: Bearer sk_live_ВАШ_КЛЮЧ"

Управление данными

Полный REST для списков, подписчиков, сегментов, кампаний, статистики и запуска автоматизаций — тем же ключом.

GETPOST/api/v1/listsсписки: получить / создать
GETPATCH/api/v1/lists/{id}список: детали / изменить / DELETE
GETPOST/api/v1/subscribersподписчики: список (?list=&status=&q=) / добавить
GETPATCH/api/v1/subscribers/{email|id}подписчик: профиль / изменить / DELETE
GETPOST/api/v1/segmentsсегменты: список / создать
GETPOST/api/v1/campaignsкампании: список / черновик
GET/api/v1/campaigns/{id}полный отчёт кампании
POST/api/v1/campaigns/{id}/sendпоставить кампанию в отправку
GET/api/v1/statsагрегаты аккаунта
POST/api/v1/automations/triggerзапуск событийных автоматизаций { event, email, data? }
# создать список
curl -X POST https://app.working-esender.ru/api/v1/lists -H "Authorization: Bearer sk_live_ВАШ_КЛЮЧ" \
  -H "Content-Type: application/json" -d '{"name":"Новости"}'

# добавить подписчика в список
curl -X POST https://app.working-esender.ru/api/v1/subscribers -H "Authorization: Bearer sk_live_ВАШ_КЛЮЧ" \
  -H "Content-Type: application/json" -d '{"email":"user@mail.ru","name":"Иван","list":"LIST_ID"}'

# статистика аккаунта
curl https://app.working-esender.ru/api/v1/stats -H "Authorization: Bearer sk_live_ВАШ_КЛЮЧ"

# запустить автоматизацию по событию
curl -X POST https://app.working-esender.ru/api/v1/automations/trigger -H "Authorization: Bearer sk_live_ВАШ_КЛЮЧ" \
  -H "Content-Type: application/json" -d '{"event":"order_paid","email":"user@mail.ru","data":{"amount":2990}}'

Официальные SDK

Тонкие клиентские библиотеки поверх API v1: ключ передаётся в конструктор, базовый адрес по умолчанию https://app.working-esender.ru. Покрывают весь REST — письма, списки, подписчики, сегменты, кампании, suppression, шаблоны, автоматизации, статистика.

const SendInbox = require("./sendinbox");
const si = new SendInbox("sk_live_ВАШ_КЛЮЧ");

// транзакционное письмо
await si.emails.send({
  to: "user@mail.ru", subject: "Привет",
  html: "<b>Тест из SDK</b>", fromEmail: "news@ваш-домен.ru",
});

// подписчик + запуск автоматизации
await si.subscribers.add({ email: "user@mail.ru", name: "Иван", list: "LIST_ID" });
await si.automations.trigger("order_paid", "user@mail.ru", { amount: 2990 });

Zapier и Make

Нативные приложения для no-code автоматизаций. Подключение по API-ключу (проверка через /api/v1/me), события приходят мгновенно через REST-hooks.

Триггеры

  • Новое событие письма — доставка/открытие/клик/отписка/жалоба/возврат (instant)
  • Новый подписчик — по аккаунту или списку (polling)

Действия

  • Добавить подписчика
  • Отправить транзакционное письмо
  • Запустить автоматизацию по событию
Blueprint для MakeПриложение Zapier — в репозитории integrations/zapier (публикуется zapier push).

Albato и n8n

Ещё две no-code платформы на том же REST API v1 и подписанных вебхуках. Albato популярен на RU-рынке (Bitrix24, amoCRM, МойСклад, Ozon/WB), n8n — self-hosted автоматизации.

Триггеры

  • Событие письма — доставка/открытие/клик/отписка/жалоба/возврат (webhook)
  • Новый подписчик — опрос

Действия

  • Отправить письмо
  • Добавить подписчика
  • Запустить автоматизацию по событию
Workflow для n8nСпецификация AlbatoНода n8n — в репозитории integrations/n8n (n8n-nodes-sendinbox).

Вебхуки событий

Подписка на события писем (open / click / bounce / complaint / unsub) — настройка в Настройках. Батчи до 500 событий, повторные попытки при 5xx. Каждый запрос подписан HMAC-SHA256 — проверяйте заголовок X-SI-Signature.

# проверка подписи на вашей стороне (псевдокод):
# X-SI-Signature: sha256=hex(hmac_sha256(secret, raw_body))

FBL — приём жалоб (ARF) POST/api/fbl/inbound

Зарегистрируйте FBL у постмастера (Mail.ru Postmaster, Яндекс.Почтовый офис) и пересылайте ARF-отчёты на ваш endpoint — жалоба найдёт письмо по Message-ID или адресу, контакт уйдёт в suppression автоматически. Ваш endpoint:

Загрузка…

Отчёт шлите в теле POST как raw MIME/ARF. Ключ не публикуйте: он даёт право регистрировать жалобы.

White-label трекинг (CNAME)

Ссылки и пиксель в письмах могут идти через ваш домен вместо адреса платформы — почтовики видят единый домен отправки и трекинга, это плюс к репутации. Добавьте DNS-запись и нажмите «Проверить» на странице Доставляемость — как только CNAME подтвердится, письма автоматически переключатся.

track.ваш-домен.ru.  CNAME  track.working-esender.ru.

Трекинг-ссылки на вашем домене работают по http (TLS-сертификат на ваше имя платформа выпустить не может); редирект мгновенный.

Нужен метод, которого здесь нет? Напишите на support@working-esender.ru — API расширяется по запросам клиентов.