REST API для транзакционной почты
API принимает аутентифицированные запросы, проверяет scope проекта и состояние домена, проверяет suppression и ставит принятые сообщения в очередь.
Скачать OpenAPI 3.1Аутентификация
Запрос / Ответ
curl --request POST 'https://api.srs-postline.com/v1/emails' \
--header 'Authorization: Bearer srs_live_...' \
--header 'Idempotency-Key: order_4821' \
--header 'Content-Type: application/json' \
--data-raw '{
"from": "Postline <info@example.com>",
"to": ["user@example.net"],
"subject": "Your order is ready",
"html": "<p>Order #4821 is ready.</p>",
"text": "Order #4821 is ready."
}'HTTP/1.1 202 Accepted
Content-Type: application/json
{
"id": "msg_01JPOSTLINEEXAMPLE",
"status": "queued",
"created_at": "2026-08-22T12:00:00Z"
}Входные параметры
| Параметр | Тип | Обязательный | Описание | Пример |
|---|---|---|---|---|
Authorization | header · string | Да | Scoped API-ключ из панели в формате Bearer-токена. | Bearer srs_live_… |
Idempotency-Key | header · string | Нет | Стабильный ID одной логической отправки; настоятельно рекомендуется. | order_4821 |
from | string | Да | Имя и адрес отправителя на подтверждённом домене. | Postline <info@example.com> |
to | string[] | Да | От одного до 100 email-адресов получателей. | ["user@example.net"] |
subject | string | Да | Тема письма. | Ваш заказ готов |
html | string | Нет | HTML-тело. Обязательно передать html или text. | <p>…</p> |
text | string | Нет | Текстовое тело. Обязательно передать text или html. | Заказ №4821… |
Коды ответа
| Статус | HTTP | Описание |
|---|---|---|
202 | Accepted | Письмо поставлено в очередь; это ещё не доставка во входящие. |
400 | Bad Request | Невалидный JSON или неподдерживаемые поля. |
401 | Unauthorized | API-ключ неверен, истёк или отозван. |
403 | Forbidden | Не хватает scope или домен отправителя не подтверждён. |
422 | Unprocessable Entity | Получатель находится в suppression-списке. |
429 | Too Many Requests | Превышен лимит запросов проекта. |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
{
"error": "recipient suppressed"
}Отправка письма
POST /v1/emails
Authorization: Bearer srs_live_…
Idempotency-Key: reset-4821
Content-Type: application/jsonОсновные ресурсы
POST/v1/emailsпоставить сообщение в очередьGET/v1/emails/{id}статус сообщенияPOST/v1/domainsдобавить домен отправкиPOST/v1/domains/{id}/verifyзапустить DNS-проверкиGET/POST/DELETE/v1/suppressionsуправление suppression-спискомGET/POST/DELETE/v1/webhooksуправление webhook-эндпоинтамиМодель ответа
202 означает «поставлено в очередь», а не «доставлено во входящие». 403 указывает на отсутствие scope или неверифицированный домен. 422 блокирует suppressed-получателя. 429 — превышен лимит запросов.
Актуальная модель доступа
Текущие ключи dashboard используют префикс srs_live_. До проверки клиентского From-домена общий sandbox-отправитель может писать только участникам проекта. После проверки DNS внешняя отправка ограничивается квотами тарифа, suppression, лимитами получателей и abuse-контролями. Ответ 202 означает очередь, а не доставку.
Материалы для интеграции
Используйте пошаговое руководство для людей и AI-агентов, а OpenAPI — как источник истины по полям API.