REST API do list, subskrybentów, kampanii i automatyzacji oraz podpisane webhooki, które mówią Twojej aplikacji, co się stało, w chwili, gdy się dzieje. Jeden token, JSON na wejściu i wyjściu.
REST API i webhooki są w planach Pro, Business i Enterprise.
https://app.mailcraft.eu/api/v1Authorization: Bearer <token>curl -X POST https://app.mailcraft.eu/api/v1/subscribers \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -d list_uid=YOUR_LIST_UID \ -d EMAIL=jane@example.com \ -d FIRST_NAME=Jane \ -d tag=shop,newsletter
Jeśli lista ma podwójne potwierdzenie, subskrybent najpierw dostanie mail z prośbą o potwierdzenie.
Pełna dokumentacja ze wszystkimi parametrami jest w panelu - zaloguj się i otwórz dokumentację API.
Dodaj adres HTTPS w panelu, a MailCraft wyśle POST z JSON-em przy każdym zdarzeniu na koncie: ze wszystkich list, kampanii i automatyzacji, zwykle w ciągu minuty.
subscriber.subscribedsubscriber.unsubscribedemail.openedemail.clickedemail.bouncedemail.complained{
"id": "01k6c3v9m2x8q4r7t5y1w0z3ab",
"event": "email.clicked",
"occurred_at": "2026-09-30T10:15:02+00:00",
"data": {
"subscriber": {"email": "jane@example.com", "status": "subscribed"},
"list": {"uid": "6a14...", "name": "Newsletter"},
"source": {"type": "campaign", "name": "September", "subject": "News"},
"url": "https://your-shop.com/sale"
}
}
$body = file_get_contents('php://input');
parse_str(str_replace(',', '&', $_SERVER['HTTP_X_MAILCRAFT_SIGNATURE'] ?? ''), $sig);
$expected = hash_hmac('sha256', $sig['t'] . '.' . $body, getenv('MAILCRAFT_WEBHOOK_SECRET'));
if (!hash_equals($expected, $sig['v1'] ?? '') || abs(time() - (int) $sig['t']) > 300) {
http_response_code(400);
exit;
}
$event = json_decode($body, true); // $event['event'], $event['data']
http_response_code(200);
Integracja, która sama się włącza i wyłącza, może dodać swój adres webhooka, gdy użytkownik ją podłączy, i usunąć go przy odłączeniu. Ten sam token i te same zasady co w panelu: do 5 adresów, tylko HTTPS.
GET /api/v1/webhooksPOST /api/v1/webhooksGET /api/v1/webhooks/{uid}DELETE /api/v1/webhooks/{uid}GET /api/v1/webhooks/eventsGET /api/v1/webhooks/samples?event=...curl -X POST https://app.mailcraft.eu/api/v1/webhooks \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"url": "https://your-app.com/mailcraft", "events": ["subscriber.subscribed", "email.bounced"]}'
# 201 -> {"data": {"uid": "01k6...", "events": [...], "secret": "whsec_..."}}
Napisz, co podłączasz - odpowiadają ludzie, którzy napisali to API.