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

SuperficieMecanismoBase / 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: … o Authorization: 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-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.

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 verificada
  • to — cadena o arreglo de direcciones
  • subject
  • html y/o text — se espera al menos un cuerpo no vacío (el texto plano puede derivarse del HTML)
Nota multi-destinatario: la API valida cada dirección en 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)

  1. Envío único — un POST por mensaje, sin encabezado de idempotencia.
  2. Reintento idempotente — mismo Idempotency-Key + cuerpo en fallos de red.
  3. Auth Bearer — reemplace X-API-Key por Authorization: Bearer YOUR_API_KEY.
  4. HTML + texto — proporcione ambos para renderizado estilo multipart/alternative donde se admita.
  5. Difusión de alertas — POST a /v1/alerts/ingest desde sus monitores; el enrutamiento es por política en la UI.
  6. Automatización de entregabilidad — consulte o modifique recursos Intel bajo /api/deliverability/v1/* con la clave del workspace.

¿Listo para pasar a una infraestructura de email fiable?

Empiece gratis sin tarjeta o hable con ventas para alto volumen y entornos enterprise.

Empezar a enviarHablar con ventas