MAILCRAFT
Start Funkcje Cennik O nas Blog Kontakt Zaloguj się Rozpocznij →
Dla developerów · REST API i webhooki

Buduj na MailCrafcie zwykłym HTTP.

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.

01 · Szybki start

Pierwszy subskrybent w jednym zapytaniu.

  1. Skopiuj token API z panelu: Konto → API.
  2. Wysyłaj go w nagłówku Authorization jako token Bearer, razem z Accept: application/json.
  3. Weź UID listy ze strony listy w panelu (albo z GET /api/v1/lists) i dodaj subskrybenta.
Adres bazowy
https://app.mailcraft.eu/api/v1
Autoryzacja
Authorization: Bearer <token>
Format
odpowiedzi w JSON; treść jako formularz albo JSON
POST /api/v1/subscribers
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.

02 · REST API

Co zrobisz przez API.

Pełna dokumentacja ze wszystkimi parametrami jest w panelu - zaloguj się i otwórz dokumentację API.

Listy
Pobieranie, tworzenie i usuwanie list, dodawanie własnych pól.
Subskrybenci
Dodawanie, edycja, wyszukiwanie po adresie e-mail, tagi, zapis, wypisanie i usuwanie.
Kampanie
Pobieranie i tworzenie kampanii, wstrzymywanie i wznawianie, pobieranie logów otwarć, kliknięć, odbić i wypisań.
Automatyzacje
Lista automatyzacji i uruchamianie tych, które startują od wywołania API.
Webhooki
Dodawanie, lista i usuwanie adresów webhooków Twojego konta.
Pełna dokumentacja API (po zalogowaniu) →
03 · Webhooki

Zdarzenia wysyłane do Twojej aplikacji, podpisane.

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.subscribed
ktoś zapisał się na listę (formularz, API, potwierdzenie, integracja ze sklepem)
subscriber.unsubscribed
ktoś wypisał się z listy
email.opened
odbiorca otworzył maila
email.clicked
odbiorca kliknął link
email.bounced
mail się odbił
email.complained
odbiorca zgłosił maila jako spam
Podpis HMAC-SHA256 w nagłówku X-MailCraft-Signature, ze znacznikiem czasu przeciw powtórkom
X-MailCraft-Delivery nie zmienia się przy ponowieniach, więc łatwo odrzucisz duplikaty
Ponowienia po 1 min, 5 min, 30 min, 2 h i 8 h, gdy Twój serwer nie odpowie kodem 2xx
Adres, który ciągle nie odpowiada, zostaje wyłączony, a Ty dostajesz o tym maila
Bez własnego kodu? Wklej adres webhooka z Zapiera albo Make
Ustaw webhooki w panelu →
Treść zgłoszenia
{
  "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"
  }
}
Weryfikacja podpisu (PHP)
$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);
04 · Webhooki przez API

Dodawaj i usuwaj adresy z własnego kodu.

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/webhooks
Twoje adresy (bez sekretów)
POST /api/v1/webhooks
dodanie adresu: url + events (lista albo "*"); odpowiedź zawiera sekret
GET /api/v1/webhooks/{uid}
jeden adres
DELETE /api/v1/webhooks/{uid}
usunięcie adresu
GET /api/v1/webhooks/events
nazwy zdarzeń
GET /api/v1/webhooks/samples?event=...
ostatnie prawdziwe zgłoszenia tego zdarzenia albo przykład w tym samym formacie
POST /api/v1/webhooks
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_..."}}

Budujesz coś większego?

Napisz, co podłączasz - odpowiadają ludzie, którzy napisali to API.