POST /api/v1/campaigns/{campaignId}/test-send
Envoie un seul e-mail — la campagne exactement telle qu'elle est rédigée — à l'adresse de votre choix, pour qu'un humain
puisse vérifier l'arrivée en boîte de réception et le rendu avant le véritable envoi. C'est le pendant API du
bouton « Envoyer un test ».
json
{"success": true, "data": {"campaignId": "…", "email": "you@example.com", "status": "test_sent"}}Un test consomme un envoi réel. Il part par le même chemin qu'une campagne — même identité d'expéditeur,
même jeu de configuration, même objet et même HTML, sans préfixe
[TEST] — et compte dans le quota d'envoi
sur 24 h. Contrairement à POST /api/v1/render, cet endpoint n'est pas gratuit à appeler en boucle.| Dans un envoi réel | Dans un test |
|---|---|
| Pixel de suivi des ouvertures | Absent — le pixel est adressé par une ligne d'envoi |
| Liens réécrits pour les clics | Non réécrits — le suivi des clics est adressé par une ligne d'envoi |
| Balises de fusion par destinataire | Données d'exemple de l'aperçu, les mêmes que celles du panneau d'aperçu |
| Lien de désabonnement | Un lien d'aperçu qui ne désabonne personne |
List-Unsubscribe.
| Condition | Réponse |
|---|---|
draft ou scheduled, tout est autorisé | 200 — le test a été envoyé |
email absent ou mal formé | 400 — rien n'a été envoyé |
| aucun lien de désabonnement dans le contenu | 400 — même vérification que /render, rien n'est envoyé |
| envoi en masse désactivé sur tout le compte | 409 — rien n'a été envoyé |
| organisation non autorisée à envoyer | 409 — rien n'a été envoyé |
| adresse sur la liste de suppression de l'organisation | 409 — rien n'a été envoyé |
campagne sending, sent ou failed | 409 — un test concerne une campagne en préparation |
| plus de 10 tests au cours de la dernière heure, même utilisateur | 409 — le plafond est partagé avec l'interface |
| campagne inconnue, ou d'une autre organisation | 404 |
Le plafond est porté par l'utilisateur derrière la clé, pas par l'endpoint. Dix tests par heure, partagés
avec le bouton « Envoyer un test » de l'application — appeler l'API ne permet pas de contourner le
budget de l'interface.
Autorisation
| Rôle dans l'organisation | Cet endpoint |
|---|---|
OWNER | Autorisé |
ADMIN | Autorisé |
MEMBER | Refusé — 403 |
Exemple
bash
curl -X POST -H "x-api-key: $AGENTMAIL_API_KEY" -H "content-type: application/json" \
"https://www.agentsmail.io/api/v1/campaigns/$CAMPAIGN_ID/test-send" \
-d '{ "email": "you@example.com" }'Réponse
200 OK— l'appel a réussi.401 Unauthorized— clé absente ou invalide, ou son propriétaire a quitté l'organisation.403 Forbidden— le propriétaire de la clé estmemberde l'organisation, pasadmin.404 Not Found— aucune ressource de ce type, ou elle appartient à une autre organisation. L'API ne confirme jamais l'existence d'un id à un appelant qui n'y a pas droit.429 Too Many Requests— plus de 120 requêtes en une minute pour cette clé.
Champs de la réponse
| Champ | Type | Description |
|---|---|---|
success | boolean | Indique si l'opération a réussi |
data.status | string | sent, ou la raison pour laquelle il n'est pas parti |
Exemple de réponse
json
{
"success": true,
"data": {
"status": "subscribed"
}
}