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.
| Surface | Mécanisme | Base / 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 |
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.X-API-Key (périmètre workspace ; émise pour Intel / surveillance délivrabilité).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.
POST https://app.sendarix.com/v1/email/send
Champs JSON du corps (obligatoires sauf mention) :
from — adresse d’expéditeur vérifiéeto — chaîne ou tableau d’adressessubjecthtml et/ou text — au moins un corps non vide attendu (le texte brut peut être dérivé du HTML)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.
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.
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 |
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.
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.bodyIdempotency-Key + corps en cas d’échec réseau.X-API-Key par Authorization: Bearer YOUR_API_KEY./v1/alerts/ingest depuis vos moniteurs ; le routage est piloté par politique dans l’interface./api/deliverability/v1/* avec la clé workspace.Démarrez gratuitement sans carte bancaire, ou échangez avec les ventes pour les gros volumes et l’offre entreprise.
Commencer à envoyerParler aux ventes