Tableau de bord
Vue d'ensemble des envois en temps réel.
Rate Limits
Surveillance des quotas de requêtes en temps réel.
Toutes clés confondues. Configurable via variable d'environnement RATE_LIMIT_GLOBAL_MAX / RATE_LIMIT_GLOBAL_WINDOW.
Historique
Journal de tous les appels à l'API.
| Date | Projet | Destinataire | Sujet | IP | Statut |
|---|---|---|---|---|---|
| OK Erreur | |||||
| Aucun log à afficher. | |||||
Newsletter
Gérez les inscriptions et le widget d'inscription à afficher sur votre site.
| Inscrit le | ||
|---|---|---|
| Aucun abonné pour ce projet. | ||
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.
| Date | Sujet | Envoyés | Échecs |
|---|---|---|---|
| Aucune campagne envoyée. | |||
Configuration
Gérez vos clés API, SMTP et limites de débit.
Sites web autorisés à utiliser la clé API depuis un navigateur.
Au moins une = seuls ces sites sont acceptés.
https://*.monsite.com-
- Aucune restriction d'origine configurée.
Documentation API
Intégrez l'envoi d'e-mails dans n'importe quelle app.
Choisis un projet : les exemples ci-dessous s'adaptent automatiquement avec la vraie clé API et l'URL de ton instance.
La clé API doit être transmise dans le corps JSON sous le champ api_key. Le header Content-Type: application/json est obligatoire.
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.
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.
# 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' }
https://*.monsite.com accepte tous les sous-domaines.Ces headers sont inclus dans chaque réponse pour vous permettre de suivre votre consommation.
| Header | Description |
|---|---|
X-RateLimit-Scope | global ou key |
X-RateLimit-Limit | Nombre max de requêtes autorisées |
X-RateLimit-Remaining | Requêtes restantes dans la fenêtre courante |
X-RateLimit-Window | Durée de la fenêtre en secondes |
Retry-After | Secondes à attendre (présent uniquement sur HTTP 429) |
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
api_key | string | Oui | Votre clé API |
subject | string | Oui | Sujet du message |
text | string | Non | Corps en texte brut (text ou html requis) |
html | string | Non | Corps en HTML (text ou html requis) |
from | string | Non | Expéditeur alternatif (domaine autorisé requis) |
reply_to | string | Non | Adresse 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) |
Même authentification et mêmes protections (origine, rate limit) que /api/send. Body JSON attendu : api_key et email.