As contagens abaixo refletem o que a aplicação expõe hoje aos integradores. Qualquer linguagem que envie HTTPS + JSON pode chamar estes endpoints; a página inclui seis pilhas de exemplo prontas para copiar.
5
Superfícies de integração
6
Linguagens de exemplo
6
Padrões de uso
Superfícies: (1) Envio transacional REST, (2) ingestão de alertas de cliente REST, (3) Deliverability Intel REST, (4) SMTP relay (protocolo, não JSON), (5) webhooks de engajamento de saída (você recebe HTTPS POSTs da Sendarix). Endpoints de sessão do painel como GET /api/keys são fluxos de navegador/sessão, não automação X-API-Key.
| Superfície | Mecanismo | Base / entrada |
|---|---|---|
| Envio transacional | POST JSON, chave de API da conta |
POST /v1/email/send (alias /v1/send) |
| Alertas de cliente | POST JSON, mesmo middleware de chave que o envio |
POST /v1/alerts/ingest |
| Deliverability Intel | GET/POST JSON, chave de API de entregabilidade do workspace |
/api/deliverability/v1/* (7 rotas) |
| SMTP relay | SMTP AUTH (host, porta, usuário, senha do painel) | Ver SMTP Relay |
| Webhooks de engajamento | Seu endpoint HTTPS recebe POSTs assinados | Configure no app → Webhooks |
X-API-Key: … ou Authorization: Bearer …. Query opcional ?api_key= é suportada para ferramentas, mas cabeçalhos são recomendados.X-API-Key (escopo do workspace; emitida para Intel / monitor de entregabilidade).Idempotency-Key para novas tentativas seguras.As chaves são criadas e rotacionadas no painel do cliente (gestão de API). Modos de escopo estão descritos na política interna de escopo da aplicação para chaves restritas.
POST https://app.sendarix.com/v1/email/send
Campos do corpo JSON (obrigatórios salvo indicação):
from — endereço de remetente verificadoto — string ou array de endereçossubjecthtml e/ou text — espera-se pelo menos um corpo não vazio (texto puro pode ser derivado do HTML)to, mas o caminho de transporte atual entrega ao primeiro destinatário. Para várias entregas distintas, faça uma requisição por destinatário (ou use SMTP para fluxos multi-RCPT).Respostas bem-sucedidas incluem identificadores como message_id e sx_trace_id para correlação com logs e webhooks.
POST https://app.sendarix.com/v1/alerts/ingest
Campos JSON típicos: event_type, severity (info, warning, critical), source, message, opcionais entity_type, entity_id, context (objeto). A entrega depende das regras de alerta no painel.
Base: /api/deliverability/v1/. Endpoints incluem workspaces, clients, domains, status de blacklist e geração de relatórios. Todos exigem a chave de API de entregabilidade do workspace.
GET | /workspaces |
GET | /clients |
POST | /clients |
GET | /domains |
POST | /domains |
GET | /blacklists/status |
POST | /reports/generate |
SMTP usa envio de e-mail padrão com credenciais do painel — adequado para apps legados e MTAs. Webhooks de engajamento saem da Sendarix para sua URL para eventos de entrega e engajamento (veja a página do produto para payload e segurança).
Webhooks inbound voltados ao provedor (ex.: Postal) são endpoints de infraestrutura, não alvos de integração do cliente.
Substitua YOUR_API_KEY e endereços. O mesmo JSON para cada stack.
# Bash — envio transacional
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": "Redefini\u00e7\u00e3o de senha",
"text": "Use este link para redefinir sua senha.",
"html": "<p>Use este link para redefinir sua senha.</p>"
}'// Node 18+ (fetch global)
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: "Redefinição de senha",
text: "Use este link para redefinir sua senha.",
html: "<p>Use este link para redefinir sua senha.<\/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': "Redefinição de senha",
'text': "Use este link para redefinir sua senha.",
'html': "<p>Use este link para redefinir sua senha.<\/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' => 'Redefinição de senha',
'text' => 'Use este link para redefinir sua senha.',
'html' => '<p>Use este link para redefinir sua senha.</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": "Redefinição de senha",
"text": "Use este link para redefinir sua senha.",
"html": "<p>Use este link para redefinir sua senha.<\/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: "Redefinição de senha",
text: "Use este link para redefinir sua senha.",
html: "<p>Use este link para redefinir sua senha.<\/p>",
}.to_json
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
puts res.bodyIdempotency-Key + corpo em falhas de rede.X-API-Key por Authorization: Bearer YOUR_API_KEY./v1/alerts/ingest a partir dos seus monitores; roteamento é por política na UI./api/deliverability/v1/* com a chave do workspace.Comece grátis sem cartão ou fale com vendas para alto volume e enterprise.
Começar a enviarFalar com vendas