Desenvolvedores · Referência API
Documentação da API
Referência técnica das APIs HTTP Sendarix, autenticação e padrões comuns de integração. Visão do produto: API de e-mail.
# Enviar email crítico por uma routing policy 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: otp_8842' \ -d '{"to":"user@acme.com","template":"password_reset","routing_policy":"transactional-critical"}'
const sendarix = require("sendarix")(process.env.SENDARIX_KEY); await sendarix.email.send({ to: "user@acme.com", template: "password_reset", routingPolicy: "transactional-critical", idempotencyKey: "otp_8842" });
# SMTP drop-in — mantenha sua integração e ganhe um control plane host: smtp.sendarix.com port: 587 (STARTTLS) username: "your_sending_key" header: X-Sendarix-Policy: transactional-critical
Auditoria de capacidades (esta plataforma)
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ícies de integração
| 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 |
Autenticação
- Chave de API da conta (envio + alertas): cabeçalho
X-API-Key: …ouAuthorization: Bearer …. Query opcional?api_key=é suportada para ferramentas, mas cabeçalhos são recomendados. - Chave de API de entregabilidade: cabeçalho
X-API-Key(escopo do workspace; emitida para Intel / monitor de entregabilidade). - Idempotência (envio): cabeçalho opcional
Idempotency-Keypara 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.
Send API
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çossubjecthtmle/outext— 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.
Ingestão de alertas de cliente
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.
Deliverability Intel API
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 relay e webhooks estilo inbound
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.
Send API — exemplos (6 linguagens)
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.body Padrões de uso (6)
- Envio único — um POST por mensagem, sem cabeçalho de idempotência.
- Nova tentativa idempotente — mesmo
Idempotency-Key+ corpo em falhas de rede. - Auth Bearer — troque
X-API-KeyporAuthorization: Bearer YOUR_API_KEY. - HTML + text — forneça ambos para renderização estilo multipart-alternative onde suportado.
- Fan-out de alertas — POST em
/v1/alerts/ingesta partir dos seus monitores; roteamento é por política na UI. - Automação de entregabilidade — faça poll ou altere recursos Intel em
/api/deliverability/v1/*com a chave do workspace.
Relacionados
Protege email crítico en cada tenant.
Mueve tu stream más crítico a Sendarix esta semana. Deja todo lo demás exactamente donde está.
