Aan de slag
Elk betaald pakket bevat volledige toegang tot de REST API. Genereer een sleutel in je account onder Account → API-sleutels en stuur die mee met elk verzoek:
curl -H "X-Api-Key: YOUR_KEY" https://mailflow.top/api/index.php/lists
Basis-URL: https://mailflow.top/api/index.php · Antwoorden zijn JSON met een status-veld met de waarde success of error. De API is niet beschikbaar in het gratis pakket.
Kernresources
Het platform is compatibel met MailWizz, dus de volledige kern-API — lijsten, abonnees, segmenten, aangepaste velden, campagnes, tracking, sjablonen, transactionele e-mail, bounces, afmeldingen — is interactief gedocumenteerd (OpenAPI), samen met alle MailFlow-endpoints op deze pagina, op:
→ Interactieve API-referentie (OpenAPI)
Bestaande MailWizz-SDK's (bijv. de officiële PHP SDK) werken direct — richt ze op de basis-URL hierboven.
AI-endpoints
De AI-functies zijn volwaardige onderdelen van de API. Dezelfde sleutel, dezelfde authenticatie en dezelfde pakketlimieten en creditregistratie als in de webapp.
GET /ai/credits
Je AI-creditmeter voor de huidige maand. Credits gelden per factuurmaand en ongebruikte credits worden niet overgedragen naar de volgende maand.
{"status":"success","data":{"unlimited":false,"limit":750,"used":112,"remaining":638}}
GET /ai/replies
Smart Replies-classificaties voor je campagnes — voed je CRM met wie geïnteresseerd is, wie een vraag stelde en wie klaagde. Filters: category (interested, question, complaint, unsubscribe_request, auto_reply, out_of_office, bounce, other), campaign_uid, since (JJJJ-MM-DD), page, per_page (max. 50).
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
AI-betrokkenheidsniveaus (vip, engaged, passive, at_risk, dormant) per lijst — dezelfde scoring die autopilot en win-back aanstuurt.
{"status":"success","data":{"records":[
{"list_uid":"qk661oq7nl8c1","name":"Main list","tiers":{"engaged":1200,"passive":3400,"dormant":900}}]}}
POST /ai/subject-lines
Genereer onderwerpregels in elke taal. Body: topic (verplicht), count (1–5, standaard 3), language (optioneel). Verbruikt AI-credits, net als de webeditor.
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
AI Flow Builder via de API: bekijk je flows met live tellers; laat de AI een complete flow opstellen op basis van een doel in gewone taal ({"goal":"...","list_uid":"..."} — geeft een concept terug dat je activeert met {"status":"active"}); zet een abonnee in een flow ({"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
Bouw je eigen app op MailFlow
Alles wat je in de webapp doet, kan ook via de API, zodat je MailFlow vanuit je eigen software kunt aansturen. Een typische werkwijze:
- Maak een lijst aan en voeg contacten toe:
POST /lists,POST /lists/<list_uid>/subscribers/bulk. - Vind nieuwe contacten met DataStack:
POST /datastack/import. - Maak zelf een campagne aan (
POST /campaigns) of laat de AI die schrijven:POST /ai/campaigns. - Controleer het AI-concept en plan het in:
GET /ai/campaigns/<run_id>,POST /ai/campaigns/<run_id>/approve. - Bekijk de resultaten:
GET /analytics/campaigns,GET /campaigns/<campaign_uid>/clicks.
Lange taken (schrijven door de AI, websites lezen, DataStack-imports) draaien op de achtergrond: de aanroep antwoordt met 202 en een job_id, en GET /ai/jobs/<job_id> laat je weten wanneer de taak klaar is.
Analyses
Dezelfde cijfers als in je dashboard en campagnerapporten. Datums zijn in UTC; from en to (YYYY-MM-DD) staan standaard op de afgelopen 30 dagen. Accounttotalen worden om de paar minuten bijgewerkt.
GET /analytics/overview— lijsten, abonnees, campagnes en verzendresultaten over een periode: verzonden, bezorgd, geopend, geklikt, bounces, klachten, afmeldingen en de bijbehorende ratio's.GET /analytics/timeline— dezelfde resultaten per dag (of per uur metinterval=hour), plus nieuwe abonnees.GET /analytics/campaigns— één rij per campagne met de resultaten; filter metstatus.GET /campaigns/<campaign_uid>/opensen/clicks— wie heeft geopend of geklikt, wanneer, vanaf waar en op welk apparaat (unique=1voor alleen de eerste gebeurtenissen).GET /campaigns/<campaign_uid>/links,/locations,/devices,/timeline,/abuse-reports— kliks per link, resultaten per land en stad, per apparaattype en per uur, en misbruikmeldingen.GET /campaigns/<campaign_uid>/stats,/bounces,/unsubscribes,/complaints,/delivery-logs— de belangrijkste campagnerapporten.GET /lists/<list_uid>/stats— abonnees per status en bron, dagelijkse groei en de campagnes die naar de lijst zijn verstuurd.
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}}}
Account en verzendinstellingen
GET /account·PUT /account— je profiel, pakket, verzendlimiet en overige limieten; wijzig je naam, telefoonnummer of tijdzone.GET|POST /campaign-groups·GET|PUT|DELETE /campaign-groups/<group_uid>— campagnegroepen.GET|POST /suppression-lists·GET|PUT|DELETE /suppression-lists/<list_uid>·GET|POST|DELETE /suppression-lists/<list_uid>/emails— suppressielijsten (tot 10.000 e-mailadressen per aanroep).GET|POST /blacklist·DELETE /blacklist/<email_uid>·GET /blacklist/check?email=— je blokkeerlijst, en of een adres ergens geblokkeerd is.GET|POST /sending-domains·GET|DELETE /sending-domains/<id>·POST /sending-domains/<id>/verify— verzenddomeinen met de DKIM-, SPF- en DMARC-records die je moet publiceren.GET|POST /tracking-domains·GET|DELETE /tracking-domains/<id>·POST /tracking-domains/<id>/verify— je eigen trackingdomeinen voor links.GET /delivery-servers·GET /countries— de servers waarmee je kunt verzenden, en landen met hun zones.
AI-campagnes
Laat de AI campagnes voor je schrijven, met of zonder jouw controle. De AI gebruikt je bedrijfsprofiel, kiest de doelgroep en de verzendtijd, test de e-mail tegen spamfilters en schrijft hem in de taal van elke abonnee.
POST /ai/campaigns— vertel de AI wat er verstuurd moet worden:goal(verplicht),list_uid(een lijst,autoofprospects),audience,business,template_uid,follow_up,auto_send.POST /ai/campaigns/prepare— de AI bepaalt wat er als volgende wordt verstuurd (maximaal 3 per dag); optioneelhint.GET /ai/campaigns·GET /ai/campaigns/<run_id>— AI-campagnes met onderwerpregels, doelgroep, voorgestelde tijd en spamcontrole (html=1voegt de e-mail zelf toe).POST /ai/campaigns/<run_id>/approve— plan de verzending in:when=proposed,nowofcustommetsend_at; optioneelmax_send.POST /ai/campaigns/<run_id>/revise(metfeedback) ·POST /ai/campaigns/<run_id>/discard— vraag om wijzigingen of verwijder het concept.GET /ai/jobs/<job_id>— de status van een achtergrondtaak en de AI-campagnes die daarmee zijn aangemaakt.GET|PUT /ai/hands-off— hands-off-modus: de AI plant, schrijft en verstuurt zonder op jou te wachten ({"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}}
Bedrijfsprofielen
De AI schrijft namens je bedrijf. Houd één profiel per website aan:
GET|POST /ai/businesses— je bedrijven; voeg er een toe metwebsite.GET|PUT|DELETE /ai/businesses/<domain>— profiel, afzender (from_name,from_email,reply_to) en bedrijfsgegevens (company_*).POST /ai/businesses/<domain>/read-website·PUT /ai/businesses/<domain>/main— laat de AI de website lezen en het profiel invullen; maak er je hoofdbedrijf van.
DataStack-prospects
Vind verse zakelijke en persoonlijke e-mailadressen en importeer ze direct in je lijsten. Imports tellen mee voor je pakket; tellingen zijn gratis.
GET /datastack/credits— hoeveel adressen je deze maand nog mag importeren binnen je pakket.GET /datastack/count— hoeveel adressen er zijn voorcountry,niche(bedrijfscategorieën),keywordenrole(persoonlijk). Gratis.POST /datastack/import— importeer adressen van het typebusinessen/ofpersonalinlist_uid(achtergrondtaak). Nieuwe adressen worden gecontroleerd voordat er een campagne naartoe wordt verstuurd.
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"}}
Supporttickets
GET|POST /support-tickets— je tickets; open een nieuw ticket metsubject,message,categoryenpriority.GET /support-tickets/<ticket_uid>·POST /support-tickets/<ticket_uid>/replies·PUT /support-tickets/<ticket_uid>/close— lees het gesprek, reageer, sluit af.
Rechten van API-sleutels
Een sleutel kan worden beperkt tot bepaalde endpoints. Ga naar Account → API-sleutels, bewerk de sleutel, schakel rechten in en vink aan wat de sleutel mag gebruiken. De endpoints op deze pagina staan daar vermeld met het voorvoegsel MailFlow.
Fouten en limieten
400—X-Api-Keyontbreekt of is ongeldig, of de sleutel heeft geen rechten voor dit endpoint402— niet genoeg DataStack-credits deze maand403— de functie zit niet in je pakket, of een pakketlimiet is bereikt404— de lijst, campagne of het andere item bestaat niet in je account409— het item heeft niet de juiste status (alleen concepten kunnen bijvoorbeeld worden goedgekeurd)422— ontbrekende/ongeldige parameters429— AI-creditlimiet of maandelijks AI-tegoed bereikt; wordt gereset op je volgende factuurdatum
Pieken worden per sleutel afgeremd — implementeer exponentiële backoff bij 429. Vragen? Neem contact met ons op of open een supportticket.