Premiers pas
Chaque forfait payant inclut un accès complet à l'API REST. Générez une clé dans votre compte sous Compte → Clés API, puis envoyez-la avec chaque requête :
curl -H "X-Api-Key: YOUR_KEY" https://mailflow.top/api/index.php/lists
URL de base : https://mailflow.top/api/index.php · Les réponses sont au format JSON, avec un champ status valant success ou error. L'API n'est pas disponible avec le forfait gratuit.
Ressources principales
La plateforme est compatible MailWizz : l'ensemble de l'API principale — listes, abonnés, segments, champs personnalisés, campagnes, suivi, modèles, e-mails transactionnels, rebonds, désabonnements — est documenté de manière interactive (OpenAPI), avec tous les endpoints MailFlow de cette page, à l'adresse :
→ Référence interactive de l'API (OpenAPI)
Les SDK MailWizz existants (par ex. le SDK PHP officiel) fonctionnent immédiatement — il suffit de les pointer vers l'URL de base ci-dessus.
Endpoints IA
Les fonctionnalités IA sont pleinement intégrées à l'API : même clé, même authentification, mêmes limites de forfait et même décompte des crédits que dans l'application web.
GET /ai/credits
Votre compteur de crédits IA pour le mois en cours. Les crédits sont alloués par mois de facturation et les crédits non utilisés ne sont pas reportés.
{"status":"success","data":{"unlimited":false,"limit":750,"used":112,"remaining":638}}
GET /ai/replies
Classifications Smart Replies pour vos campagnes — alimentez votre CRM : qui est intéressé, qui a posé une question, qui s'est plaint. Filtres : category (interested, question, complaint, unsubscribe_request, auto_reply, out_of_office, bounce, other), campaign_uid, since (YYYY-MM-DD), page, per_page (50 max).
curl -H "X-Api-Key: YOUR_KEY" \
"https://mailflow.top/api/index.php/ai/replies?category=interested&since=2026-08-01"
{"status":"success","data":{"count":42,"current_page":1,"per_page":20,"total_pages":3,
"records":[{"from_email":"[email protected]","subject":"RE: your offer",
"category":"interested","confidence":98,"engine":"embeddings",
"summary":"...","suggested_reply":"...","date_added":"2026-08-24 18:21:19",
"campaign_uid":"py794hjqk8a8d"}]}}
GET /ai/tiers
Niveaux d'engagement IA (vip, engaged, passive, at_risk, dormant) par liste — le même scoring qui alimente le pilote automatique et la reconquête.
{"status":"success","data":{"records":[
{"list_uid":"qk661oq7nl8c1","name":"Main list","tiers":{"engaged":1200,"passive":3400,"dormant":900}}]}}
POST /ai/subject-lines
Générez des objets d'e-mail dans n'importe quelle langue. Corps : topic (obligatoire), count (1–5, 3 par défaut), language (facultatif). Consomme des crédits IA comme l'éditeur web.
curl -X POST -H "X-Api-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"topic":"Summer sale for B2B customers","count":3,"language":"Greek"}' \
https://mailflow.top/api/index.php/ai/subject-lines
{"status":"success","data":{"subjects":["...","...","..."],"credits_remaining":636}}
GET /ai/flows · POST /ai/flows/author · POST /ai/flows/<uid>/enroll · POST /ai/flows/<uid>/status
Le créateur de workflows IA via l'API : listez vos workflows avec leurs compteurs en direct ; laissez l'IA créer un workflow complet à partir d'un objectif formulé en langage courant ({"goal":"...","list_uid":"..."} — renvoie un brouillon que vous activez avec {"status":"active"}) ; ajoutez un abonné à un workflow ({"email":"..."}).
curl -X POST -H "X-Api-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"goal":"When someone replies interested, notify me, wait 2 days, then send a case study"}' \
https://mailflow.top/api/index.php/ai/flows/author
Créez votre propre application sur MailFlow
Tout ce que vous faites dans l'application web peut se faire via l'API : vous pouvez ainsi piloter MailFlow depuis votre propre logiciel. Un parcours type :
- Créez une liste et ajoutez des contacts :
POST /lists,POST /lists/<list_uid>/subscribers/bulk. - Trouvez de nouveaux contacts avec DataStack :
POST /datastack/import. - Créez une campagne vous-même (
POST /campaigns) ou laissez l'IA la rédiger :POST /ai/campaigns. - Vérifiez et programmez le brouillon de l'IA :
GET /ai/campaigns/<run_id>,POST /ai/campaigns/<run_id>/approve. - Consultez les résultats :
GET /analytics/campaigns,GET /campaigns/<campaign_uid>/clicks.
Les tâches longues (rédaction par l'IA, lecture de site web, importations DataStack) s'exécutent en arrière-plan : l'appel répond 202 avec un job_id, et GET /ai/jobs/<job_id> vous indique quand la tâche est terminée.
Statistiques
Les mêmes chiffres que dans votre tableau de bord et vos rapports de campagne. Les dates sont en UTC ; par défaut, from et to (YYYY-MM-DD) couvrent les 30 derniers jours. Les totaux du compte sont actualisés à quelques minutes d'intervalle.
GET /analytics/overview— listes, abonnés, campagnes et résultats d'envoi sur une période : envoyés, délivrés, ouvertures, clics, rebonds, plaintes, désabonnements et leurs taux.GET /analytics/timeline— les mêmes résultats par jour (ou par heure avecinterval=hour), plus les nouveaux abonnés.GET /analytics/campaigns— une ligne par campagne avec ses résultats ; filtrez avecstatus.GET /campaigns/<campaign_uid>/openset/clicks— qui a ouvert ou cliqué, quand, d'où et sur quel appareil (unique=1pour les premiers événements uniquement).GET /campaigns/<campaign_uid>/links,/locations,/devices,/timeline,/abuse-reports— clics par lien, résultats par pays et par ville, par type d'appareil, par heure, et signalements d'abus.GET /campaigns/<campaign_uid>/stats,/bounces,/unsubscribes,/complaints,/delivery-logs— les rapports de campagne de base.GET /lists/<list_uid>/stats— abonnés par statut et par source, croissance quotidienne et campagnes envoyées à la liste.
curl -H "X-Api-Key: YOUR_KEY" \
"https://mailflow.top/api/index.php/analytics/overview?from=2026-09-01&to=2026-09-30"
{"status":"success","data":{"period":{"from":"2026-09-01","to":"2026-09-30","timezone":"UTC"},
"lists":9,"subscribers":{"total":52040,"confirmed":50102,"unsubscribed":311},
"campaigns":{"total":24,"sent":20,"draft":4},
"activity":{"sent":48210,"delivered":47650,"unique_opens":14230,"unique_clicks":2210,
"bounces":402,"complaints":3,"unsubscribes":95,"open_rate":29.86,"click_rate":4.64}}}
Compte et configuration de l'envoi
GET /account·PUT /account— votre profil, votre forfait, votre quota d'envoi et vos limites ; modifiez votre nom, votre téléphone ou votre fuseau horaire.GET|POST /campaign-groups·GET|PUT|DELETE /campaign-groups/<group_uid>— groupes de campagnes.GET|POST /suppression-lists·GET|PUT|DELETE /suppression-lists/<list_uid>·GET|POST|DELETE /suppression-lists/<list_uid>/emails— listes de suppression (jusqu'à 10 000 e-mails par appel).GET|POST /blacklist·DELETE /blacklist/<email_uid>·GET /blacklist/check?email=— votre liste noire, et si une adresse est bloquée quelque part.GET|POST /sending-domains·GET|DELETE /sending-domains/<id>·POST /sending-domains/<id>/verify— domaines d'envoi avec les enregistrements DKIM, SPF et DMARC à publier.GET|POST /tracking-domains·GET|DELETE /tracking-domains/<id>·POST /tracking-domains/<id>/verify— vos propres domaines de suivi des liens.GET /delivery-servers·GET /countries— les serveurs par lesquels vous pouvez envoyer, et les pays avec leurs zones.
Campagnes IA
Laissez l'IA rédiger vos campagnes, avec ou sans votre validation. L'IA utilise votre profil d'entreprise, choisit l'audience et l'heure d'envoi, vérifie l'e-mail face aux filtres anti-spam et le rédige dans la langue de chaque abonné.
POST /ai/campaigns— indiquez à l'IA quoi envoyer :goal(obligatoire),list_uid(une liste,autoouprospects),audience,business,template_uid,follow_up,auto_send.POST /ai/campaigns/prepare— l'IA décide quoi envoyer ensuite (jusqu'à 3 par jour) ;hintfacultatif.GET /ai/campaigns·GET /ai/campaigns/<run_id>— campagnes IA avec objets, audience, heure proposée et contrôle anti-spam (html=1ajoute l'e-mail).POST /ai/campaigns/<run_id>/approve— programmez l'envoi :when=proposed,nowoucustomavecsend_at;max_sendfacultatif.POST /ai/campaigns/<run_id>/revise(avecfeedback) ·POST /ai/campaigns/<run_id>/discard— demandez des modifications ou abandonnez le brouillon.GET /ai/jobs/<job_id>— état d'une tâche en arrière-plan et campagnes IA qu'elle a créées.GET|PUT /ai/hands-off— mode autonome : l'IA planifie, rédige et envoie sans attendre votre intervention ({"enabled":true}).
curl -X POST -H "X-Api-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"goal":"Invite our customers to the autumn webinar","list_uid":"auto"}' \
https://mailflow.top/api/index.php/ai/campaigns
{"status":"success","data":{"job_id":512,"job_status":"queued","check":"/ai/jobs/512"}}
curl -H "X-Api-Key: YOUR_KEY" https://mailflow.top/api/index.php/ai/jobs/512
{"status":"success","data":{"job_id":512,"type":"autopilot","status":"done","ai_campaigns":[331],"sent":false}}
Profils d'entreprise
L'IA écrit au nom de votre entreprise. Gardez un profil par site web :
GET|POST /ai/businesses— vos entreprises ; ajoutez-en une avecwebsite.GET|PUT|DELETE /ai/businesses/<domain>— profil, expéditeur (from_name,from_email,reply_to) et coordonnées de l'entreprise (company_*).POST /ai/businesses/<domain>/read-website·PUT /ai/businesses/<domain>/main— laissez l'IA lire le site web et remplir le profil ; faites-en votre entreprise principale.
Prospects DataStack
Trouvez de nouvelles adresses e-mail professionnelles et personnelles, et importez-les directement dans vos listes. Les importations sont décomptées de votre forfait ; le comptage des adresses est gratuit.
GET /datastack/credits— le nombre d'adresses que votre forfait vous permet encore d'importer ce mois-ci.GET /datastack/count— nombre d'adresses disponibles pourcountry,niche(catégories d'activité),keywordetrole(personnelles). Gratuit.POST /datastack/import— importe des adressesbusinesset/oupersonaldanslist_uid(tâche en arrière-plan). Les nouvelles adresses sont vérifiées avant qu'une campagne ne leur soit envoyée.
curl -X POST -H "X-Api-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"list_uid":"cr5899rtqe668","business":2000,"country":"Greece","niche":"dentist, hotel"}' \
https://mailflow.top/api/index.php/datastack/import
{"status":"success","data":{"job_id":513,"job_status":"queued","check":"/ai/jobs/513","list_uid":"cr5899rtqe668"}}
Tickets d'assistance
GET|POST /support-tickets— vos tickets ; ouvrez-en un avecsubject,message,categoryetpriority.GET /support-tickets/<ticket_uid>·POST /support-tickets/<ticket_uid>/replies·PUT /support-tickets/<ticket_uid>/close— lire la conversation, répondre, clôturer.
Autorisations des clés API
Une clé peut être limitée à certains endpoints. Sous Compte → Clés API, modifiez la clé, activez les autorisations et cochez ce qu'elle peut utiliser. Les endpoints de cette page sont listés avec le préfixe MailFlow.
Erreurs et limites
400—X-Api-Keymanquant ou invalide, ou la clé n'a pas l'autorisation d'utiliser cet endpoint402— crédits DataStack insuffisants ce mois-ci403— la fonctionnalité n'est pas incluse dans votre forfait, ou une limite du forfait est atteinte404— la liste, la campagne ou tout autre élément n'existe pas dans votre compte409— l'élément n'est pas dans le bon état (par exemple, seuls les brouillons peuvent être approuvés)422— paramètres manquants/invalides429— limite de crédits IA ou quota IA mensuel atteint ; réinitialisation à votre prochaine date de facturation
Les rafales de requêtes sont limitées par clé — implémentez un backoff exponentiel en cas de 429. Des questions ? Contactez-nous ou ouvrez un ticket d'assistance.