Постановка транзакционного письма в очередь.
{
"project_id": 1,
"from": {"email": "noreply@example.com", "name": "My App"},
"to": [{"email": "user@example.com", "name": "Иван"}],
"subject": "Подтверждение входа",
"html": "<p>Здравствуйте, {{name}}. Ваш код: <b>{{code}}</b></p>",
"text": "Здравствуйте, {{name}}. Ваш код: {{code}}",
"variables": {"name": "Иван", "code": "482913"},
"metadata": {"type": "otp"},
"idempotency_key": "otp-15-482913"
}
curl -X POST "https://mail.example.com/api/v1/transactional/send.php" \
-H "Content-Type: application/json" \
-H "X-API-Key: tm_live_xxxxx" \
-d @payload.json
Создание маркетинговой кампании. Scheduler разложит письма по очереди на основе warmup и rate limits.
{
"project_id": 1,
"name": "April newsletter",
"template_code": "newsletter_main",
"list_code": "main_newsletter",
"from": {"email": "news@example.com", "name": "Example"},
"scheduled_at": "2026-03-28 09:00:00",
"variables": {"month": "Апрель"},
"metadata": {"utm_campaign": "april-news"}
}
Ингест событий доставок, bounce, complaint, open, click, unsubscribe.
{
"events": [
{
"event_id": "evt_123",
"event_type": "complaint",
"recipient_public_id": "rcpt_abc123",
"reason": "Mailbox provider feedback loop"
}
]
}
curl -X POST "https://mail.example.com/api/v1/events/ingest.php" \
-H "Content-Type: application/json" \
-H "X-Event-Secret: YOUR_EVENT_INGEST_SECRET" \
-d @events.json
Апсерт контактов и подписка в список.
{
"project_id": 1,
"list_code": "main_newsletter",
"contacts": [
{"email": "user@example.com", "name": "Иван", "attributes": {"city": "Riga"}}
]
}
Возвращает статус сообщения и статусы получателей.
Для marketing stream автоматически добавляются List-Unsubscribe и List-Unsubscribe-Post. Endpoint поддерживает GET и POST.
php bin/worker.php transactional
php bin/worker.php marketing
php bin/webhook_worker.php
php bin/campaign_scheduler.php
php bin/reputation_rollup.php
php bin/domain_warmup.php