Приведённые ниже числа отражают то, что приложение сегодня отдаёт интеграторам. Любой язык с HTTPS + JSON может вызывать эти endpoints; на странице шесть готовых к копированию стеков примеров.
5
Поверхности интеграции
6
Языки примеров
6
Паттерны использования
Поверхности: (1) транзакционная отправка REST, (2) приём клиентских алертов REST, (3) Deliverability Intel REST, (4) SMTP relay (протокол, не JSON), (5) исходящие engagement webhooks (вы получаете HTTPS POST от Sendarix). Session endpoints дашборда вроде GET /api/keys — браузерные/сессионные потоки, не автоматизация X-API-Key.
| Поверхность | Механизм | База / вход |
|---|---|---|
| Транзакционная отправка | POST JSON, API-ключ аккаунта |
POST /v1/email/send (алиас /v1/send) |
| Клиентские алерты | POST JSON, тот же ключевой middleware что и для send |
POST /v1/alerts/ingest |
| Deliverability Intel | GET/POST JSON, API-ключ workspace deliverability |
/api/deliverability/v1/* (7 маршрутов) |
| SMTP relay | SMTP AUTH (хост, порт, логин, пароль из дашборда) | См. SMTP Relay |
| Engagement webhooks | Ваш HTTPS endpoint принимает подписанные POST | Настройка в приложении → Webhooks |
X-API-Key: … или Authorization: Bearer …. Опциональный query ?api_key= для инструментов; рекомендуются заголовки.X-API-Key (область workspace; для Intel / монитора доставляемости).Idempotency-Key для безопасных повторов.Ключи создаются и ротируются в дашборде клиента (управление API). Режимы scope описаны во внутренней политике для ограниченных ключей.
POST https://app.sendarix.com/v1/email/send
Поля JSON body (обязательны, если не указано иное):
from — проверенный адрес отправителяto — строка или массив адресовsubjecthtml и/или text — ожидается хотя бы одно непустое тело (plain text может быть выведен из HTML)to, но текущий транспорт доставляет первому получателю. Для нескольких раздельных доставок — один запрос на получателя (или SMTP для multi-RCPT).Успешные ответы включают идентификаторы вроде message_id и sx_trace_id для связи с логами и вебхуками.
POST https://app.sendarix.com/v1/alerts/ingest
Типичные поля JSON: event_type, severity (info, warning, critical), source, message, опционально entity_type, entity_id, context (object). Доставка зависит от правил алертов в дашборде.
База: /api/deliverability/v1/. Endpoints: workspaces, clients, domains, blacklist status, генерация отчётов. Все требуют API-ключ workspace deliverability.
GET | /workspaces |
GET | /clients |
POST | /clients |
GET | /domains |
POST | /domains |
GET | /blacklists/status |
POST | /reports/generate |
SMTP — стандартная передача с учётными данными из дашборда, для legacy и MTA. Engagement webhooks — исходящие от Sendarix на ваш URL для событий доставки и вовлечённости (payload и безопасность — на продуктовой странице).
Inbound webhooks провайдера (например Postal) — инфраструктурные endpoints, не цели интеграции клиента.
Замените YOUR_API_KEY и адреса. Один JSON для всех стеков.
# Bash — транзакционная отправка
curl -sS -X POST 'https://app.sendarix.com/v1/email/send' \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_API_KEY' \
-H 'Idempotency-Key: order-10042-reset' \
-d '{
"from": "noreply@example.com",
"to": "user@example.com",
"subject": "\u0421\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f",
"text": "\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u0443 \u0441\u0441\u044b\u043b\u043a\u0443 \u0434\u043b\u044f \u0441\u0431\u0440\u043e\u0441\u0430 \u043f\u0430\u0440\u043e\u043b\u044f.",
"html": "<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u0443 \u0441\u0441\u044b\u043b\u043a\u0443 \u0434\u043b\u044f \u0441\u0431\u0440\u043e\u0441\u0430 \u043f\u0430\u0440\u043e\u043b\u044f.</p>"
}'// Node 18+ (global fetch)
const res = await fetch('https://app.sendarix.com/v1/email/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'YOUR_API_KEY',
'Idempotency-Key': 'order-10042-reset',
},
body: JSON.stringify({
from: 'noreply@example.com',
to: 'user@example.com',
subject: "Сброс пароля",
text: "Используйте эту ссылку для сброса пароля.",
html: "<p>Используйте эту ссылку для сброса пароля.<\/p>",
}),
});
console.log(await res.json());# Python 3
import json, urllib.request
req = urllib.request.Request(
'https://app.sendarix.com/v1/email/send',
data=json.dumps({
'from': 'noreply@example.com',
'to': 'user@example.com',
'subject': "Сброс пароля",
'text': "Используйте эту ссылку для сброса пароля.",
'html': "<p>Используйте эту ссылку для сброса пароля.<\/p>",
}).encode(),
headers={
'Content-Type': 'application/json',
'X-API-Key': 'YOUR_API_KEY',
'Idempotency-Key': 'order-10042-reset',
},
method='POST',
)
with urllib.request.urlopen(req) as r:
print(r.read().decode())<?php
$ch = curl_init('https://app.sendarix.com/v1/email/send');
$payload = json_encode([
'from' => 'noreply@example.com',
'to' => 'user@example.com',
'subject' => 'Сброс пароля',
'text' => 'Используйте эту ссылку для сброса пароля.',
'html' => '<p>Используйте эту ссылку для сброса пароля.</p>',
]);\ncurl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: YOUR_API_KEY',
'Idempotency-Key: order-10042-reset',
],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch);// Go
package main
import (
"bytes"
"encoding/json"
"net/http"
)
func main() {
body, _ := json.Marshal(map[string]any{
"from": "noreply@example.com",
"to": "user@example.com",
"subject": "Сброс пароля",
"text": "Используйте эту ссылку для сброса пароля.",
"html": "<p>Используйте эту ссылку для сброса пароля.<\/p>",
})
req, _ := http.NewRequest("POST", "https://app.sendarix.com/v1/email/send", bytes.NewReader(body))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
req.Header.Set("Idempotency-Key", "order-10042-reset")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
}# Ruby — net/http
require 'json'
require 'net/http'
uri = URI('https://app.sendarix.com/v1/email/send')
req = Net::HTTP::Post.new(uri)
req['Content-Type'] = 'application/json'
req['X-API-Key'] = 'YOUR_API_KEY'
req['Idempotency-Key'] = 'order-10042-reset'
req.body = {
from: 'noreply@example.com',
to: 'user@example.com',
subject: "Сброс пароля",
text: "Используйте эту ссылку для сброса пароля.",
html: "<p>Используйте эту ссылку для сброса пароля.<\/p>",
}.to_json
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
puts res.bodyIdempotency-Key + body при сбоях сети.X-API-Key на Authorization: Bearer YOUR_API_KEY./v1/alerts/ingest из мониторов; маршрутизация по политике в UI./api/deliverability/v1/* с workspace-ключом.Начните бесплатно без карты или свяжитесь с отделом продаж для крупных объёмов и Enterprise.
Начать отправкуСвязаться с продажами