Climails · Публичный API
Версия 1.0.0
Climails — платформа email- и мультиканальных рассылок. Этот API даёт программный доступ ко всему, что есть в кабинете: отправка писем и сообщений, контакты, списки и сегменты, шаблоны, кампании, события, автоматизации, отправляющие домены, веб-хуки и аналитика.
Как читать эту страницу. Слева — все эндпоинты, сгруппированные по разделам. Кликните на операцию, чтобы увидеть её параметры, тело запроса и примеры ответов. Кнопка TRY выполняет запрос прямо из браузера — вставьте свой API-ключ в поле авторизации (см. «Аутентификация» ниже).
Нужны только письма (регистрация, сброс пароля)?
Не нужно поднимать свой почтовый сервер и не нужно разбираться в контактах, списках, сегментах, кампаниях и автоматизациях — это всё для маркетинговых рассылок по базе. Для транзакционных писем со своим шаблоном достаточно трёх шагов:
1. Подтвердите свой домен — раздел domains: добавьте домен и пропишите выданные DNS-записи (SPF/DKIM/DMARC). Без этого письма либо не уйдут, либо попадут в спам. Делается один раз. 2. Создайте шаблон (по желанию) — раздел templates: POST /templates с вашим HTML и плейсхолдерами вроде {{name}} / {{reset_link}}. В ответ придёт template_id. Можно и без шаблона — слать html прямо в запросе. 3. Отправляйте письма — POST /messages, по одному на каждое событие (регистрация, сброс пароля и т.п.).
Отправка по своему шаблону с подстановкой переменных:
curl -X POST https://api.climails.com/v1/messages \
-H "Authorization: Bearer sb_live_<prefix>.<secret>" \
-H "Content-Type: application/json" \
-d '{
"channel": "email",
"to": "[email protected]",
"from_email": "no-reply@ваш-домен.com",
"template_id": "tmpl_reset_password",
"variables": { "name": "Иван", "reset_link": "https://ваш-сайт.com/r/abc" }
}'
Всё остальное в этой доке (contacts, lists, segments, campaigns, automations, events, webhooks) — опционально и вам сейчас не требуется.
Аутентификация
Все запросы авторизуются Bearer API-ключом: Authorization: Bearer sb_live_<prefix>.<secret>
Ключи создаются в кабинете: Настройки → API-ключи. Каждый ключ привязан к одному рабочему пространству и имеет набор скоупов (например contacts:write, messages:send). Ключ показывается полностью только один раз при создании.
Быстрый старт
Отправить письмо одним запросом:
curl -X POST https://api.climails.com/v1/messages \
-H "Authorization: Bearer sb_live_<prefix>.<secret>" \
-H "Content-Type: application/json" \
-d '{
"channel": "email",
"to": "[email protected]",
"from_email": "hello@ваш-домен.com",
"subject": "Привет от Climails",
"html": "<h1>Готово</h1>"
}'
В ответ придёт 202 с message_id и status: queued. Статус доставки затем можно получить через GET /messages/{id} или ловить веб-хуками. Обязательные поля — только channel и to; from_email должен принадлежать верифицированному отправляющему домену.
Скоупы
Доступ каждого ключа ограничен его скоупами — сервер проверяет их на каждом запросе и возвращает 403 { "error": "scope required: ..." }, если скоупа нет. Скоуп * даёт полный доступ. Право write включает в себя read для того же ресурса.
| Скоуп | Что открывает | |-------|----------------| | contacts:read | Чтение контактов, списков, сегментов, кастомных полей | | contacts:write | Изменение контактов/списков/сегментов, импорт, suppression | | templates:read | Чтение шаблонов и их версий | | templates:write | Создание/изменение/удаление/импорт шаблонов | | campaigns:read | Чтение кампаний и статистики | | campaigns:write | Создание, изменение, запуск/пауза/отмена кампаний | | automations:read | Чтение автоматизаций | | automations:write| Создание/изменение/активация/триггер автоматизаций | | messages:send | Транзакционная отправка и чтение статуса сообщения | | events:write | Приём product-событий | | webhooks:read | Чтение веб-хуков и доставок | | webhooks:write | Управление веб-хуками, тест, реплей доставок | | domains:read | Чтение sending-доменов и DNS-записей | | domains:write | Добавление/верификация доменов, авто-DNS, IP-пулы | | analytics:read | Аналитика по кампаниям и воркспейсу | | pii:read | Email/phone в открытом виде (иначе маскируются) |
Рабочее пространство
Ресурсы, специфичные для рабочего пространства (контакты, сегменты, шаблоны, кампании, автоматизации, домены, веб-хуки), монтируются под /workspaces/{workspace_id}/.... Узнать workspace_id можно через GET /workspaces. API-ключ авторизует операции только в своём рабочем пространстве — запрос с чужим workspace_id вернёт 403.
Транзакционная отправка (POST /messages) и приём событий (POST /events) воркспейс из ключа берут автоматически — путь не параметризуется.
Идемпотентность
Мутирующие запросы принимают заголовок Idempotency-Key (до 64 символов). Повтор с тем же ключом в течение 24 часов вернёт исходный результат, не создавая дубль.
Базовый URL
Production: https://api.climails.com/v1
Серверы
https://api.climails.com/v1 — Productionhttps://api.staging.climails.com/v1 — Staginghttp://localhost:8080/api/v1 — Local dev
Эндпоинты
GET/health
Проверка доступности
Ответы
GET/workspaces
Рабочие пространства, доступные ключу
Ответы
POST/workspaces
Создать новое рабочее пространство
Создаёт новый workspace и назначает текущего пользователя его владельцем. Требует интерактивную сессию (пользовательский JWT из кабинета) — API-ключ привязан к одному workspace и создавать новые не может.
Тело запроса (object)
| Поле | Тип | Обяз. | Описание |
|---|
name | string | да | Название рабочего пространства. |
Ответы
POST/messages
Отправить транзакционное сообщение
Отправляет одиночное сообщение (сервисное письмо, SMS, push, telegram, whatsapp, viber). Рабочее пространство берётся из API-ключа — указывать его не нужно. Можно отправить по шаблону (template_id + variables) либо передать subject/html/text напрямую.
Требует скоуп messages:send.
Параметры
| Поле | Тип | Обяз. | Описание |
|---|
channel | string | да | |
to | string | да | Получатель: email / телефон в E.164 / chat_id и т.п. — в зависимости от канала. |
cc | array<string (email)> | — | Копия (email). Видна остальным получателям. До 50 адресов. |
bcc | array<string (email)> | — | Скрытая копия (email). Не попадает в заголовки письма — получатели друг друга не видят. До 50 адресов. |
contact_id | string | — | Альтернатива to: отправка существующему контакту по его id. |
template_id | string | — | Если задан, subject/html/text берутся из шаблона, а variables подставляются. |
from_email | string (email) | — | Адрес отправителя. Должен принадлежать верифицированному отправляющему домену. |
from_name | string | — | |
reply_to | string (email) | — | |
headers | object | — | Произвольные MIME-заголовки письма (например X-Entity-Ref-ID). Служебные и адресные заголовки (From, To, Subject, Date, Message-ID, DKIM-Signature, List-Unsubscribe и т.п.) переопределить нельзя. До 30 штук. |
subject | string | — | Тема письма. Игнорируется, если задан template_id. |
html | string | — | HTML-тело (если без шаблона). |
text | string | — | Текстовая часть. |
variables | object | — | Подстановки в шаблон. |
metadata | object | — | Произвольные метаданные, возвращаются в веб-хуках о доставке. |
tags | array<string> | — | |
attachments | array<object> | — | Вложения письма. До 10 штук, суммарно до 15 MiB в декодированном виде. Поля: | Поле | Тип | Обяз. | Описание |
|---|
filename | string | да | Имя файла. Без переводов строк. | content_type | string | — | MIME-тип. Можно не указывать — определяется автоматически по расширению файла и сигнатуре (pdf, docx, xlsx, png, jpg и др.). | content_b64 | string | да | Содержимое файла в base64. |
|
sending_domain_id | string | — | Явный отправляющий домен; по умолчанию выбирается автоматически по from_email. |
Ответы
| Код | Описание | Схема |
|---|
202 | queued | object |
401 | | — |
403 | | — |
422 | | — |
GET/messages/{id}
Статус сообщения и события доставки
Ответы
POST/events
Принять product-событие для автоматизаций и аналитики
Требует скоуп events:write.
Параметры
| Поле | Тип | Обяз. | Описание |
|---|
name | string | да | |
contact | object | да | | Поле | Тип | Обяз. | Описание |
|---|
id | string | — | | external_id | string | — | | email | string (email) | — | |
|
occurred_at | string (date-time) | — | |
properties | object | — | |
Ответы
| Код | Описание | Схема |
|---|
202 | accepted | — |
POST/events/bulk
Принять до 1000 событий одним запросом
Тело запроса (object)
Ответы
| Код | Описание | Схема |
|---|
202 | accepted | — |
POST/workspaces/{workspace_id}/contacts
Создать или обновить контакт
Параметры
| Поле | Тип | Обяз. | Описание |
|---|
external_id | string | — | |
email | string (email) | — | |
phone | string | — | |
attributes | object | — | |
tags | array<string> | — | |
locale | string | — | |
timezone | string | — | |
list_ids | array<string> | — | |
consent | object | — | | Поле | Тип | Обяз. | Описание |
|---|
marketing_email | boolean | — | | sms | boolean | — | |
|
Ответы
POST/workspaces/{workspace_id}/contacts/bulk
Создать/обновить до 1000 контактов одним запросом
Параметры
Тело запроса (object)
Ответы
POST/workspaces/{workspace_id}/contacts/import
Запустить импорт CSV (возвращает ссылку для загрузки)
Тело запроса (object)
| Поле | Тип | Обяз. | Описание |
|---|
filename | string | да | |
size_bytes | integer | да | |
sha256 | string | да | |
mapping | object | — | |
dedup_keys | array<string> | — | |
Ответы
| Код | Описание | Схема |
|---|
200 | ok | object |
GET/workspaces/{workspace_id}/lists
Список списков
Ответы
POST/workspaces/{workspace_id}/lists
Создать список
Тело запроса (object)
| Поле | Тип | Обяз. | Описание |
|---|
name | string | да | |
Ответы
| Код | Описание | Схема |
|---|
201 | created | — |
GET/workspaces/{workspace_id}/segments
Список сегментов
Ответы
POST/workspaces/{workspace_id}/segments
Создать сегмент
Тело запроса (Segment)
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
kind | string | — | |
filter | object | да | DSL фильтрации |
Ответы
| Код | Описание | Схема |
|---|
201 | created | — |
POST/workspaces/{workspace_id}/segments/preview
Оценить размер сегмента и выборку до сохранения
Тело запроса (Segment)
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
kind | string | — | |
filter | object | да | DSL фильтрации |
Ответы
| Код | Описание | Схема |
|---|
200 | ok | object |
POST/workspaces/{workspace_id}/segments/{id}/recalculate
Пересчитать состав сегмента сейчас
Ответы
| Код | Описание | Схема |
|---|
202 | recalculating | — |
GET/workspaces/{workspace_id}/templates
Список шаблонов
Требует скоуп templates:read.
Ответы
POST/workspaces/{workspace_id}/templates
Создать шаблон
Требует скоуп templates:write.
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
channel | string | да | |
subject | string | — | |
preheader | string | — | |
from_name | string | — | |
from_email | string (email) | — | |
reply_to | string (email) | — | |
html | string | — | |
mjml | string | — | |
text | string | — | |
variables | array<string> | — | |
Ответы
| Код | Описание | Схема |
|---|
201 | created | — |
GET/workspaces/{workspace_id}/templates/{id}
Получить шаблон
Требует скоуп templates:read.
Ответы
PATCH/workspaces/{workspace_id}/templates/{id}
Обновить шаблон
Требует скоуп templates:write.
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
channel | string | да | |
subject | string | — | |
preheader | string | — | |
from_name | string | — | |
from_email | string (email) | — | |
reply_to | string (email) | — | |
html | string | — | |
mjml | string | — | |
text | string | — | |
variables | array<string> | — | |
Ответы
| Код | Описание | Схема |
|---|
200 | updated | — |
DELETE/workspaces/{workspace_id}/templates/{id}
Удалить шаблон
Требует скоуп templates:write.
Ответы
| Код | Описание | Схема |
|---|
204 | deleted | — |
GET/workspaces/{workspace_id}/templates/{id}/versions
Список версий шаблона
Требует скоуп templates:read.
Ответы
POST/workspaces/{workspace_id}/templates/{id}/revert/{version}
Откатить шаблон к предыдущей версии
Требует скоуп templates:write.
Ответы
| Код | Описание | Схема |
|---|
200 | reverted | — |
POST/workspaces/{workspace_id}/templates/import-html
Создать шаблон из готового HTML
Требует скоуп templates:write.
Тело запроса (object)
| Поле | Тип | Обяз. | Описание |
|---|
name | string | да | |
subject | string | — | |
html | string | да | |
Ответы
| Код | Описание | Схема |
|---|
201 | created | — |
POST/workspaces/{workspace_id}/templates/import-url
Создать шаблон, импортировав HTML по URL
Требует скоуп templates:write.
Тело запроса (object)
| Поле | Тип | Обяз. | Описание |
|---|
name | string | да | |
url | string (uri) | да | |
Ответы
| Код | Описание | Схема |
|---|
201 | created | — |
POST/workspaces/{workspace_id}/templates/{id}/preview
Предпросмотр шаблона
Тело запроса (object)
| Поле | Тип | Обяз. | Описание |
|---|
variables | object | — | |
contact_id | string | — | |
Ответы
| Код | Описание | Схема |
|---|
200 | ok | object |
GET/workspaces/{workspace_id}/campaigns
Список кампаний
Ответы
POST/workspaces/{workspace_id}/campaigns
Создать кампанию (рассылка по спискам/сегментам)
Требует скоуп campaigns:write.
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
channel | string | да | |
kind | string | — | |
template_id | string | да | |
subject_override | string | — | |
from_name | string | — | |
from_email | string | — | |
reply_to | string | — | |
audience | object | да | | Поле | Тип | Обяз. | Описание |
|---|
list_ids | array<string> | — | | segment_ids | array<string> | — | | exclude_list_ids | array<string> | — | |
|
variants | array<object> | — | | Поле | Тип | Обяз. | Описание |
|---|
name | string | — | | weight | number | — | | subject | string | — | | template_id | string | — | |
|
settings | object | — | | Поле | Тип | Обяз. | Описание |
|---|
utm | object | — | | Поле | Тип | Обяз. | Описание |
|---|
source | string | — | | medium | string | — | | campaign | string | — | |
| quiet_hours | object | — | | Поле | Тип | Обяз. | Описание |
|---|
start | string | — | | end | string | — | |
| frequency_cap | object | — | | Поле | Тип | Обяз. | Описание |
|---|
per_day | integer | — | | per_week | integer | — | |
|
|
Ответы
| Код | Описание | Схема |
|---|
201 | created | — |
POST/workspaces/{workspace_id}/campaigns/preview-audience
Оценить аудиторию до сохранения кампании
Требует скоуп campaigns:read или campaigns:write.
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
channel | string | да | |
kind | string | — | |
template_id | string | да | |
subject_override | string | — | |
from_name | string | — | |
from_email | string | — | |
reply_to | string | — | |
audience | object | да | | Поле | Тип | Обяз. | Описание |
|---|
list_ids | array<string> | — | | segment_ids | array<string> | — | | exclude_list_ids | array<string> | — | |
|
variants | array<object> | — | | Поле | Тип | Обяз. | Описание |
|---|
name | string | — | | weight | number | — | | subject | string | — | | template_id | string | — | |
|
settings | object | — | | Поле | Тип | Обяз. | Описание |
|---|
utm | object | — | | Поле | Тип | Обяз. | Описание |
|---|
source | string | — | | medium | string | — | | campaign | string | — | |
| quiet_hours | object | — | | Поле | Тип | Обяз. | Описание |
|---|
start | string | — | | end | string | — | |
| frequency_cap | object | — | | Поле | Тип | Обяз. | Описание |
|---|
per_day | integer | — | | per_week | integer | — | |
|
|
Ответы
| Код | Описание | Схема |
|---|
200 | ok | object |
GET/workspaces/{workspace_id}/campaigns/{id}
Получить кампанию
Требует скоуп campaigns:read.
Ответы
PATCH/workspaces/{workspace_id}/campaigns/{id}
Обновить черновик кампании
Требует скоуп campaigns:write.
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
channel | string | да | |
kind | string | — | |
template_id | string | да | |
subject_override | string | — | |
from_name | string | — | |
from_email | string | — | |
reply_to | string | — | |
audience | object | да | | Поле | Тип | Обяз. | Описание |
|---|
list_ids | array<string> | — | | segment_ids | array<string> | — | | exclude_list_ids | array<string> | — | |
|
variants | array<object> | — | | Поле | Тип | Обяз. | Описание |
|---|
name | string | — | | weight | number | — | | subject | string | — | | template_id | string | — | |
|
settings | object | — | | Поле | Тип | Обяз. | Описание |
|---|
utm | object | — | | Поле | Тип | Обяз. | Описание |
|---|
source | string | — | | medium | string | — | | campaign | string | — | |
| quiet_hours | object | — | | Поле | Тип | Обяз. | Описание |
|---|
start | string | — | | end | string | — | |
| frequency_cap | object | — | | Поле | Тип | Обяз. | Описание |
|---|
per_day | integer | — | | per_week | integer | — | |
|
|
Ответы
| Код | Описание | Схема |
|---|
200 | updated | — |
POST/workspaces/{workspace_id}/campaigns/{id}/schedule
Запланировать или отправить кампанию сейчас
Тело запроса (object)
| Поле | Тип | Обяз. | Описание |
|---|
at | string (date-time) | — | |
send_now | boolean | — | |
by_timezone | boolean | — | |
Ответы
| Код | Описание | Схема |
|---|
202 | scheduled | — |
POST/workspaces/{workspace_id}/campaigns/{id}/pause
Поставить кампанию на паузу
Ответы
| Код | Описание | Схема |
|---|
202 | paused | — |
POST/workspaces/{workspace_id}/campaigns/{id}/cancel
Отменить кампанию
Ответы
| Код | Описание | Схема |
|---|
202 | cancelled | — |
GET/workspaces/{workspace_id}/campaigns/{id}/stats
Статистика кампании
Ответы
GET/workspaces/{workspace_id}/automations
Список автоматизаций
Ответы
POST/workspaces/{workspace_id}/automations
Создать автоматизацию
Требует скоуп automations:write.
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
status | string | — | |
trigger | object | да | | Поле | Тип | Обяз. | Описание |
|---|
kind | string | — | | config | object | — | |
|
graph | object | да | ориентированный граф нод; формализация в отдельной спеке |
re_entry | string | — | |
Ответы
| Код | Описание | Схема |
|---|
201 | created | — |
GET/workspaces/{workspace_id}/automations/{id}
Получить автоматизацию
Требует скоуп automations:read.
Ответы
PATCH/workspaces/{workspace_id}/automations/{id}
Обновить автоматизацию
Требует скоуп automations:write.
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
status | string | — | |
trigger | object | да | | Поле | Тип | Обяз. | Описание |
|---|
kind | string | — | | config | object | — | |
|
graph | object | да | ориентированный граф нод; формализация в отдельной спеке |
re_entry | string | — | |
Ответы
| Код | Описание | Схема |
|---|
200 | updated | — |
POST/workspaces/{workspace_id}/automations/{id}/pause
Поставить автоматизацию на паузу
Требует скоуп automations:write.
Ответы
| Код | Описание | Схема |
|---|
202 | paused | — |
POST/workspaces/{workspace_id}/automations/{id}/activate
Активировать автоматизацию
Ответы
| Код | Описание | Схема |
|---|
202 | activated | — |
POST/workspaces/{workspace_id}/automations/{id}/trigger
Вручную добавить контакт в автоматизацию
Тело запроса (object)
| Поле | Тип | Обяз. | Описание |
|---|
contact_id | string | — | |
external_id | string | — | |
Ответы
| Код | Описание | Схема |
|---|
202 | triggered | — |
POST/workspaces/{workspace_id}/suppressions
Добавить адрес в список подавления
Тело запроса (object)
| Поле | Тип | Обяз. | Описание |
|---|
channel | string | да | |
address | string | да | |
reason | string | да | |
Ответы
| Код | Описание | Схема |
|---|
201 | created | — |
GET/workspaces/{workspace_id}/sending-domains
Список отправляющих доменов
Ответы
POST/workspaces/{workspace_id}/sending-domains
Добавить отправляющий домен
Тело запроса (object)
| Поле | Тип | Обяз. | Описание |
|---|
domain | string | да | |
tracking_subdomain | string | — | |
Ответы
| Код | Описание | Схема |
|---|
201 | created — возвращаются DNS-записи для настройки | SendingDomain |
POST/workspaces/{workspace_id}/sending-domains/{id}/verify
Перепроверить DNS и подтвердить домен
Ответы
GET/workspaces/{workspace_id}/sending-domains/{id}/records
DNS-записи (SPF/DKIM/DMARC) для публикации
Ответы
GET/workspaces/{workspace_id}/webhooks
Список веб-хуков
Требует скоуп webhooks:read.
Ответы
POST/workspaces/{workspace_id}/webhooks
Создать веб-хук
Требует скоуп webhooks:write.
Тело запроса (Webhook)
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
url | string (uri) | да | |
events | array<string> | да | |
secret | string | — | виден только при создании |
status | string | — | |
Ответы
| Код | Описание | Схема |
|---|
201 | created | — |
GET/workspaces/{workspace_id}/webhooks/{id}
Получить веб-хук
Требует скоуп webhooks:read.
Ответы
DELETE/workspaces/{workspace_id}/webhooks/{id}
Удалить веб-хук
Требует скоуп webhooks:write.
Ответы
| Код | Описание | Схема |
|---|
204 | deleted | — |
POST/workspaces/{workspace_id}/webhooks/{id}/pause
Приостановить доставки веб-хука
Требует скоуп webhooks:write.
Ответы
| Код | Описание | Схема |
|---|
202 | paused | — |
POST/workspaces/{workspace_id}/webhooks/{id}/resume
Возобновить веб-хук
Требует скоуп webhooks:write.
Ответы
| Код | Описание | Схема |
|---|
202 | resumed | — |
POST/workspaces/{workspace_id}/webhooks/{id}/test
Отправить тестовое событие на веб-хук
Требует скоуп webhooks:write.
Тело запроса (object)
| Поле | Тип | Обяз. | Описание |
|---|
event_type | string | — | |
payload | object | — | |
Ответы
GET/workspaces/{workspace_id}/webhooks/{id}/deliveries
Список последних попыток доставки
Требует скоуп webhooks:read.
Ответы
POST/workspaces/{workspace_id}/webhooks/deliveries/{delivery_id}/replay
Повторить прошлую доставку
Требует скоуп webhooks:write.
Ответы
| Код | Описание | Схема |
|---|
202 | replayed | — |
Схемы данных
Workspace
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | — | |
plan | string | — | |
data_region | string | — | |
ContactPage
| Поле | Тип | Обяз. | Описание |
|---|
data | array<Contact> | — | |
next_cursor | string | — | |
Segment
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
kind | string | — | |
filter | object | да | DSL фильтрации |
Template
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
channel | string | да | |
subject | string | — | |
preheader | string | — | |
from_name | string | — | |
from_email | string (email) | — | |
reply_to | string (email) | — | |
html | string | — | |
mjml | string | — | |
text | string | — | |
variables | array<string> | — | |
Campaign
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
channel | string | да | |
kind | string | — | |
template_id | string | да | |
subject_override | string | — | |
from_name | string | — | |
from_email | string | — | |
reply_to | string | — | |
audience | object | да | | Поле | Тип | Обяз. | Описание |
|---|
list_ids | array<string> | — | | segment_ids | array<string> | — | | exclude_list_ids | array<string> | — | |
|
variants | array<object> | — | | Поле | Тип | Обяз. | Описание |
|---|
name | string | — | | weight | number | — | | subject | string | — | | template_id | string | — | |
|
settings | object | — | | Поле | Тип | Обяз. | Описание |
|---|
utm | object | — | | Поле | Тип | Обяз. | Описание |
|---|
source | string | — | | medium | string | — | | campaign | string | — | |
| quiet_hours | object | — | | Поле | Тип | Обяз. | Описание |
|---|
start | string | — | | end | string | — | |
| frequency_cap | object | — | | Поле | Тип | Обяз. | Описание |
|---|
per_day | integer | — | | per_week | integer | — | |
|
|
CampaignStats
| Поле | Тип | Обяз. | Описание |
|---|
campaign_id | string | — | |
sent | integer | — | |
delivered | integer | — | |
opens | integer | — | |
unique_opens | integer | — | |
clicks | integer | — | |
unique_clicks | integer | — | |
bounces | integer | — | |
complaints | integer | — | |
unsubscribes | integer | — | |
open_rate | number (float) | — | |
click_rate | number (float) | — | |
MessageRequest
| Поле | Тип | Обяз. | Описание |
|---|
channel | string | да | |
to | string | да | Получатель: email / телефон в E.164 / chat_id и т.п. — в зависимости от канала. |
cc | array<string (email)> | — | Копия (email). Видна остальным получателям. До 50 адресов. |
bcc | array<string (email)> | — | Скрытая копия (email). Не попадает в заголовки письма — получатели друг друга не видят. До 50 адресов. |
contact_id | string | — | Альтернатива to: отправка существующему контакту по его id. |
template_id | string | — | Если задан, subject/html/text берутся из шаблона, а variables подставляются. |
from_email | string (email) | — | Адрес отправителя. Должен принадлежать верифицированному отправляющему домену. |
from_name | string | — | |
reply_to | string (email) | — | |
headers | object | — | Произвольные MIME-заголовки письма (например X-Entity-Ref-ID). Служебные и адресные заголовки (From, To, Subject, Date, Message-ID, DKIM-Signature, List-Unsubscribe и т.п.) переопределить нельзя. До 30 штук. |
subject | string | — | Тема письма. Игнорируется, если задан template_id. |
html | string | — | HTML-тело (если без шаблона). |
text | string | — | Текстовая часть. |
variables | object | — | Подстановки в шаблон. |
metadata | object | — | Произвольные метаданные, возвращаются в веб-хуках о доставке. |
tags | array<string> | — | |
attachments | array<object> | — | Вложения письма. До 10 штук, суммарно до 15 MiB в декодированном виде. Поля: | Поле | Тип | Обяз. | Описание |
|---|
filename | string | да | Имя файла. Без переводов строк. | content_type | string | — | MIME-тип. Можно не указывать — определяется автоматически по расширению файла и сигнатуре (pdf, docx, xlsx, png, jpg и др.). | content_b64 | string | да | Содержимое файла в base64. |
|
sending_domain_id | string | — | Явный отправляющий домен; по умолчанию выбирается автоматически по from_email. |
MessageStatus
| Поле | Тип | Обяз. | Описание |
|---|
message_id | string | — | |
status | string | — | |
events | array<object> | — | | Поле | Тип | Обяз. | Описание |
|---|
kind | string | — | | at | string (date-time) | — | | meta | object | — | |
|
ProductEvent
| Поле | Тип | Обяз. | Описание |
|---|
name | string | да | |
contact | object | да | | Поле | Тип | Обяз. | Описание |
|---|
id | string | — | | external_id | string | — | | email | string (email) | — | |
|
occurred_at | string (date-time) | — | |
properties | object | — | |
Automation
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
name | string | да | |
status | string | — | |
trigger | object | да | | Поле | Тип | Обяз. | Описание |
|---|
kind | string | — | | config | object | — | |
|
graph | object | да | ориентированный граф нод; формализация в отдельной спеке |
re_entry | string | — | |
SendingDomain
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
domain | string | — | |
tracking_subdomain | string | — | |
status | string | — | |
dkim | array<object> | — | | Поле | Тип | Обяз. | Описание |
|---|
selector | string | — | | record | string | — | | status | string | — | |
|
spf | object | — | | Поле | Тип | Обяз. | Описание |
|---|
record | string | — | | status | string | — | |
|
dmarc | object | — | | Поле | Тип | Обяз. | Описание |
|---|
record | string | — | | status | string | — | |
|
Webhook
| Поле | Тип | Обяз. | Описание |
|---|
id | string | — | |
url | string (uri) | да | |
events | array<string> | да | |
secret | string | — | виден только при создании |
status | string | — | |
Error
| Поле | Тип | Обяз. | Описание |
|---|
error | object | да | | Поле | Тип | Обяз. | Описание |
|---|
code | string | да | | message | string | да | | details | object | — | | request_id | string | — | |
|