Desarrolladores · Referencia API
Documentación de la API
Referencia técnica de las API HTTP de Sendarix, autenticación y patrones de integración comunes. Vista de producto: API de correo.
# Enviar un email crítico mediante una 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 — conserva tu integración y gana un control plane host: smtp.sendarix.com port: 587 (STARTTLS) username: "your_sending_key" header: X-Sendarix-Policy: transactional-critical
Auditoría de capacidades (esta plataforma)
Los conteos siguientes reflejan lo que la aplicación expone hoy a integradores. Cualquier lenguaje que pueda enviar HTTPS + JSON puede llamar a estos puntos finales; la página incluye seis pilas de ejemplo listas para copiar.
5
Superficies de integración
6
Lenguajes de ejemplo
6
Patrones de uso
Superficies: (1) envío transaccional REST, (2) ingestión de alertas de cliente REST, (3) Deliverability Intel REST, (4) relé SMTP (protocolo, no JSON), (5) webhooks de participación salientes (usted recibe POST HTTPS desde Sendarix). Los puntos finales de sesión del panel como GET /api/keys son flujos de navegador/sesión, no automatización X-API-Key.
Superficies de integración
| Superficie | Mecanismo | Base / entrada |
|---|---|---|
| Envío transaccional | POST JSON, clave API de cuenta | POST /v1/email/send (alias /v1/send) |
| Alertas de cliente | POST JSON, mismo middleware de clave que envío | POST /v1/alerts/ingest |
| Deliverability Intel | GET/POST JSON, clave API de entregabilidad del workspace | /api/deliverability/v1/* (7 rutas) |
| Relé SMTP | SMTP AUTH (host, puerto, usuario, contraseña desde el panel) | Ver Relé SMTP |
| Webhooks de participación | Su punto final HTTPS recibe POST firmados | Configurar en la app → Webhooks |
Autenticación
- Clave API de cuenta (envío + alertas): encabezado
X-API-Key: …oAuthorization: Bearer …. Consulta opcional?api_key=admitida para herramientas; se recomiendan encabezados. - Clave API de entregabilidad: encabezado
X-API-Key(ámbito del workspace; emitida para Intel / monitor de entregabilidad). - Idempotencia (envío): encabezado opcional
Idempotency-Keypara reintentos seguros.
Las claves se crean y rotan desde el panel del cliente (gestión de API). Los modos de alcance se describen en la política de alcance interna de la aplicación para claves restringidas.
API de envío
POST https://app.sendarix.com/v1/email/send
Campos JSON del cuerpo (obligatorios salvo indicación):
from— dirección de remitente verificadato— cadena o arreglo de direccionessubjecthtmly/otext— se espera al menos un cuerpo no vacío (el texto plano puede derivarse del HTML)
to, pero la ruta de transporte actual entrega al primer destinatario. Para múltiples entregas distintas, una solicitud por destinatario (o SMTP para flujos multi-RCPT).Las respuestas exitosas incluyen identificadores como message_id y sx_trace_id para correlación con registros y webhooks.
Ingestión de alertas de cliente
POST https://app.sendarix.com/v1/alerts/ingest
Campos JSON típicos: event_type, severity (info, warning, critical), source, message, opcionalmente entity_type, entity_id, context (objeto). La entrega depende de las reglas de alerta configuradas en el panel.
API Deliverability Intel
Base: /api/deliverability/v1/. Endpoints: espacios de trabajo, clientes, dominios, estado de listas negras y generación de informes. Todos requieren la clave API de entregabilidad del workspace.
GET | /workspaces |
GET | /clients |
POST | /clients |
GET | /domains |
POST | /domains |
GET | /blacklists/status |
POST | /reports/generate |
Relé SMTP y webhooks tipo entrante
SMTP usa envío de correo estándar con credenciales del panel — adecuado para aplicaciones heredadas y MTA. Webhooks de participación son salientes de Sendarix hacia su URL para eventos de entrega y participación (vea la página de producto para carga útil y seguridad).
Los webhooks entrantes orientados al proveedor (p. ej. Postal) son puntos de infraestructura, no objetivos de integración del cliente.
API de envío — ejemplos (6 lenguajes)
Reemplace YOUR_API_KEY y las direcciones. Mismo JSON para cada pila.
# Bash — envío transaccional
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": "Restablecimiento de contrase\u00f1a",
"text": "Use este enlace para restablecer su contrase\u00f1a.",
"html": "<p>Use este enlace para restablecer su contrase\u00f1a.</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: "Restablecimiento de contraseña",
text: "Use este enlace para restablecer su contraseña.",
html: "<p>Use este enlace para restablecer su contraseña.<\/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': "Restablecimiento de contraseña",
'text': "Use este enlace para restablecer su contraseña.",
'html': "<p>Use este enlace para restablecer su contraseña.<\/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' => 'Restablecimiento de contraseña',
'text' => 'Use este enlace para restablecer su contraseña.',
'html' => '<p>Use este enlace para restablecer su contraseña.</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": "Restablecimiento de contraseña",
"text": "Use este enlace para restablecer su contraseña.",
"html": "<p>Use este enlace para restablecer su contraseña.<\/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: "Restablecimiento de contraseña",
text: "Use este enlace para restablecer su contraseña.",
html: "<p>Use este enlace para restablecer su contraseña.<\/p>",
}.to_json
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
puts res.body Patrones de uso (6)
- Envío único — un POST por mensaje, sin encabezado de idempotencia.
- Reintento idempotente — mismo
Idempotency-Key+ cuerpo en fallos de red. - Auth Bearer — reemplace
X-API-KeyporAuthorization: Bearer YOUR_API_KEY. - HTML + texto — proporcione ambos para renderizado estilo multipart/alternative donde se admita.
- Difusión de alertas — POST a
/v1/alerts/ingestdesde sus monitores; el enrutamiento es por política en la UI. - Automatización de entregabilidad — consulte o modifique recursos Intel bajo
/api/deliverability/v1/*con la clave del workspace.
Relacionado
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á.
