Audit des capacités (cette plateforme)

Les comptes ci-dessous reflètent ce que l’application expose aux intégrateurs aujourd’hui. Tout langage capable d’HTTPS + JSON peut appeler ces points de terminaison ; la page inclut six piles d’exemples prêtes à copier.

5

Surfaces d’intégration

6

Langages d’exemple

6

Modèles d’usage

Surfaces : (1) envoi transactionnel REST, (2) ingestion d’alertes client REST, (3) Deliverability Intel REST, (4) relais SMTP (protocole, pas JSON), (5) webhooks d’engagement sortants (vous recevez des POST HTTPS depuis Sendarix). Les points de terminaison de session tableau de bord comme GET /api/keys sont des flux navigateur/session, pas de l’automatisation X-API-Key.

Surfaces d’intégration

SurfaceMécanismeBase / entrée
Envoi transactionnel POST JSON, clé API compte POST /v1/email/send (alias /v1/send)
Alertes client POST JSON, même middleware de clé qu’envoi POST /v1/alerts/ingest
Deliverability Intel GET/POST JSON, clé API délivrabilité workspace /api/deliverability/v1/* (7 routes)
Relais SMTP SMTP AUTH (hôte, port, utilisateur, mot de passe depuis le tableau de bord) Voir Relais SMTP
Webhooks d’engagement Votre point de terminaison HTTPS reçoit des POST signés Configurer dans l’app → Webhooks

Authentification

  • Clé API compte (envoi + alertes) : en-tête X-API-Key: … ou Authorization: Bearer …. Paramètre de requête optionnel ?api_key= pris en charge pour les outils ; les en-têtes sont recommandés.
  • Clé API délivrabilité : en-tête X-API-Key (périmètre workspace ; émise pour Intel / surveillance délivrabilité).
  • Idempotence (envoi) : en-tête optionnel Idempotency-Key pour des nouvelles tentatives sûres.

Les clés sont créées et tournées depuis le tableau de bord client (gestion API). Les modes de périmètre sont décrits dans la politique de périmètre interne de l’application pour les clés restreintes.

API d’envoi

POST https://app.sendarix.com/v1/email/send

Champs JSON du corps (obligatoires sauf mention) :

  • from — adresse d’expéditeur vérifiée
  • to — chaîne ou tableau d’adresses
  • subject
  • html et/ou text — au moins un corps non vide attendu (le texte brut peut être dérivé du HTML)
Note multi-destinataires : l’API valide chaque adresse dans to, mais le chemin de transport actuel livre au premier destinataire. Pour plusieurs livraisons distinctes, une requête par destinataire (ou SMTP pour workflows multi-RCPT).

Les réponses réussies incluent des identifiants tels que message_id et sx_trace_id pour corréler avec journaux et webhooks.

Ingestion d’alertes client

POST https://app.sendarix.com/v1/alerts/ingest

Champs JSON typiques : event_type, severity (info, warning, critical), source, message, optionnellement entity_type, entity_id, context (objet). La livraison dépend des règles d’alerte configurées dans le tableau de bord.

API Deliverability Intel

Base : /api/deliverability/v1/. Points de terminaison : espaces de travail, clients, domaines, statut liste noire et génération de rapports. Tous exigent la clé API délivrabilité workspace.

GET/workspaces
GET/clients
POST/clients
GET/domains
POST/domains
GET/blacklists/status
POST/reports/generate

Relais SMTP et webhooks de type entrant

SMTP utilise la soumission mail standard avec identifiants du tableau de bord — adapté aux applications héritées et MTA. Webhooks d’engagement sont sortants de Sendarix vers votre URL pour livraison et engagement (voir page produit pour charge utile et sécurité).

Les webhooks entrants côté fournisseur (ex. Postal) sont des points d’infrastructure, pas des cibles d’intégration client.

API d’envoi — exemples (6 langages)

Remplacez YOUR_API_KEY et les adresses. Même JSON pour chaque pile.

# Bash — envoi transactionnel
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": "R\u00e9initialisation du mot de passe",
    "text": "Utilisez ce lien pour r\u00e9initialiser votre mot de passe.",
    "html": "<p>Utilisez ce lien pour r\u00e9initialiser votre mot de passe.</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: "Réinitialisation du mot de passe",
    text: "Utilisez ce lien pour réinitialiser votre mot de passe.",
    html: "<p>Utilisez ce lien pour réinitialiser votre mot de passe.<\/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': "Réinitialisation du mot de passe",
        'text': "Utilisez ce lien pour réinitialiser votre mot de passe.",
        'html': "<p>Utilisez ce lien pour réinitialiser votre mot de passe.<\/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' => 'Réinitialisation du mot de passe',
    'text' => 'Utilisez ce lien pour réinitialiser votre mot de passe.',
    'html' => '<p>Utilisez ce lien pour réinitialiser votre mot de passe.</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": "Réinitialisation du mot de passe",
        "text":    "Utilisez ce lien pour réinitialiser votre mot de passe.",
        "html":    "<p>Utilisez ce lien pour réinitialiser votre mot de passe.<\/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: "Réinitialisation du mot de passe",
  text: "Utilisez ce lien pour réinitialiser votre mot de passe.",
  html: "<p>Utilisez ce lien pour réinitialiser votre mot de passe.<\/p>",
}.to_json
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
puts res.body

Modèles d’usage (6)

  1. Envoi ponctuel — un POST par message, sans en-tête d’idempotence.
  2. Nouvelle tentative idempotente — même Idempotency-Key + corps en cas d’échec réseau.
  3. Auth Bearer — remplacez X-API-Key par Authorization: Bearer YOUR_API_KEY.
  4. HTML + texte — fournissez les deux pour un rendu multipart/alternative là où c’est pris en charge.
  5. Diffusion d’alertes — POST vers /v1/alerts/ingest depuis vos moniteurs ; le routage est piloté par politique dans l’interface.
  6. Automatisation délivrabilité — interrogez ou modifiez les ressources Intel sous /api/deliverability/v1/* avec la clé workspace.

Prêt à passer à une infrastructure e-mail fiable ?

Démarrez gratuitement sans carte bancaire, ou échangez avec les ventes pour les gros volumes et l’offre entreprise.

Commencer à envoyerParler aux ventes