Tableau de bord

Vue d'ensemble des envois en temps réel.

Total
envois traités
Succès
messages délivrés
Erreurs
échecs d'envoi
Taux
%
de réussite
24 dernières heures
7 derniers jours
Activité par projet
Aucune activité enregistrée.

Rate Limits

Surveillance des quotas de requêtes en temps réel.

Limite Globale du Serveur

Toutes clés confondues. Configurable via variable d'environnement RATE_LIMIT_GLOBAL_MAX / RATE_LIMIT_GLOBAL_WINDOW.

Limite atteinte Attention OK
Requêtes utilisées /
Fenêtre
Restantes
Utilisation
Limites par clé API
Aucune clé configurée.

Historique

Journal de tous les appels à l'API.

DateProjetDestinataireSujetIPStatut
Aucun log à afficher.
sur

Newsletter

Gérez les inscriptions et le widget d'inscription à afficher sur votre site.

Abonnés
Exporter CSV
Choisissez un projet pour voir ses abonnés.
EmailInscrit le
Aucun abonné pour ce projet.
Widget d'inscription (HTML)

Modifiez le code ci-dessous et voyez le résultat en direct. Le bouton et l'input sont déjà branchés sur votre clé API.

Choisissez un projet ci-dessus pour insérer automatiquement la bonne clé API dans l'exemple.
Aperçu
Campagnes
Choisissez un projet pour voir ses abonnés.
Un lien de désinscription est ajouté automatiquement en bas de chaque email.

Historique des campagnes
DateSujetEnvoyésÉchecs
Aucune campagne envoyée.

Configuration

Gérez vos clés API, SMTP et limites de débit.

Nouvelle configuration SMTP
Hôte et port pré-remplis. Ce fournisseur exige un mot de passe d'application (pas votre mot de passe habituel) : Créer un mot de passe d'application →
⚠️ Cette clé pourra envoyer vers n'importe quelle adresse. Gardez-la uniquement dans un script serveur / cron, jamais dans du code exécuté dans un navigateur.
C'est ici — et uniquement ici — que sont envoyés les messages reçus via cette clé. Le formulaire du site ne peut jamais choisir un autre destinataire.
Pas de destinataire fixe pour ce type de clé
Le script fournit lui-même le champ "to" (et en option des pièces jointes) à chaque appel à /api/send. Voir l'onglet Documentation pour l'exemple.
Rate Limit par clé
Limite le nombre de requêtes pour cette clé API. Désactiver = illimité.
Cette clé peut envoyer un nombre illimité de requêtes (dans la limite globale du serveur).
Clés configurées
Aucune clé configurée. Créez-en une ci-dessus.
Origines autorisées

Sites web autorisés à utiliser la clé API depuis un navigateur.

Aucune origine = clé utilisable depuis partout (usage serveur).
Au moins une = seuls ces sites sont acceptés.
Wildcard: https://*.monsite.com


  • Aucune restriction d'origine configurée.

Documentation API

Intégrez l'envoi d'e-mails dans n'importe quelle app.

Génère tes exemples avec tes vraies données

Choisis un projet : les exemples ci-dessous s'adaptent automatiquement avec la vraie clé API et l'URL de ton instance.

Les messages envoyés avec cette clé arriveront sur 
Clé backend — le destinataire et les pièces jointes sont fournis par le script à chaque appel.
Endpoint
POST

La clé API doit être transmise dans le corps JSON sous le champ api_key. Le header Content-Type: application/json est obligatoire.

Clés "backend" — destinataire libre + pièces jointes

Une clé créée en type "Script backend" (onglet Configuration) accepte un champ "to" et un tableau "attachments" dans le payload — utile pour des scripts serveur (cron, notifications, factures PDF...). Cette clé n'est jamais destinée à être exposée dans du JS ou une app mobile : quiconque la possède peut l'utiliser pour envoyer vers n'importe quelle adresse.

Restriction par origine

Protège les clés utilisées côté navigateur : même si la clé est publique dans le JS, seuls vos sites peuvent l'utiliser.

Aucune origine configurée
La clé accepte les requêtes depuis n'importe où. Idéal pour les appels serveur-à-serveur où la clé n'est pas exposée.
Avec origines configurées
Seuls les sites listés peuvent utiliser la clé. Les requêtes depuis d'autres origines reçoivent un 403 ORIGIN_NOT_ALLOWED.
Comment ça marche :
# Le navigateur envoie automatiquement le header Origin
fetch('https://votre-gateway.com/api/send', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
    // Origin: https://monsite.com  ← ajouté automatiquement par le navigateur
  },
  body: JSON.stringify({ api_key: 'pb_formto_…', … })
})

# Côté serveur Node/Python : ajouter manuellement si besoin
headers: { 'Origin': 'https://monsite.com' }
Wildcard supporté : https://*.monsite.com accepte tous les sous-domaines.
Headers de réponse — Rate Limiting

Ces headers sont inclus dans chaque réponse pour vous permettre de suivre votre consommation.

HeaderDescription
X-RateLimit-Scopeglobal ou key
X-RateLimit-LimitNombre max de requêtes autorisées
X-RateLimit-RemainingRequêtes restantes dans la fenêtre courante
X-RateLimit-WindowDurée de la fenêtre en secondes
Retry-AfterSecondes à attendre (présent uniquement sur HTTP 429)
Réponse 429 (limite atteinte) :
{ "error": "Trop de requêtes…", "retry_after": 3600 }
Paramètres du corps (JSON)
ChampTypeObligatoireDescription
api_keystringOuiVotre clé API
subjectstringOuiSujet du message
textstringNonCorps en texte brut (text ou html requis)
htmlstringNonCorps en HTML (text ou html requis)
fromstringNonExpéditeur alternatif (domaine autorisé requis)
reply_tostringNonAdresse pré-remplie pour répondre (n'affecte jamais le destinataire réel)
to string Clés backend Destinataire — requis et utilisé uniquement pour les clés de type "backend"; ignoré pour les clés "form"
attachments array Clés backend Tableau de {filename, content_type, content} — content en base64. Réservé aux clés "backend" (5 fichiers / 10 Mo max chacun)
cURL

                
Python

                
JavaScript (fetch)

                
PHP

                
Endpoint — Inscription newsletter
POST

Même authentification et mêmes protections (origine, rate limit) que /api/send. Body JSON attendu : api_key et email.

cURL

                    
JavaScript (fetch)