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.
| 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 |
X-API-Key: … o Authorization: Bearer …. Consulta opcional ?api_key= admitida para herramientas; se recomiendan encabezados.X-API-Key (ámbito del workspace; emitida para Intel / monitor de entregabilidad).Idempotency-Key para 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.
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 direccionessubjecthtml y/o text — 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.
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.
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 |
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.
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.bodyIdempotency-Key + cuerpo en fallos de red.X-API-Key por Authorization: Bearer YOUR_API_KEY./v1/alerts/ingest desde sus monitores; el enrutamiento es por política en la UI./api/deliverability/v1/* con la clave del workspace.Empiece gratis sin tarjeta o hable con ventas para alto volumen y entornos enterprise.
Empezar a enviarHablar con ventas