Webhooks API
2 min czytania
API Webhooks pozwala tworzyć, zarządzać i testować endpointy webhooków dla powiadomień w czasie rzeczywistym.
Utwórz webhook
Zarejestruj nowy endpoint webhooka.
POST /v1/webhooks
Body żądania
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
url |
string | Tak | URL endpointu HTTPS |
events |
array | Tak | Typy zdarzeń do otrzymywania |
description |
string | Nie | Czytelny opis |
secret |
string | Nie | Własny sekret podpisu (auto-generowany jeśli pominięty) |
Dostępne zdarzenia
| Zdarzenie | Opis |
|---|---|
delivered |
Email zaakceptowany przez serwer odbiorcy |
bounced |
Email odrzucony |
deferred |
Tymczasowy błąd, ponowimy próbę |
opened |
Odbiorca otworzył email |
clicked |
Odbiorca kliknął link |
unsubscribed |
Odbiorca się wypisał |
complained |
Oznaczono jako spam |
inbound |
Otrzymano email przychodzący |
Przykładowe żądanie
curl -X POST https://api.mailingapi.com/v1/webhooks \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://twojaapka.pl/webhooks/mailingapi",
"events": ["delivered", "bounced", "complained", "opened", "clicked"],
"description": "Produkcyjny webhook"
}'
Odpowiedź
{
"id": "wh_abc123",
"url": "https://twojaapka.pl/webhooks/mailingapi",
"events": ["delivered", "bounced", "complained", "opened", "clicked"],
"description": "Produkcyjny webhook",
"secret": "whsec_1a2b3c4d5e6f...",
"status": "active",
"created_at": "2024-01-15T10:00:00Z"
}
Ważne: Zapisz secret — będzie potrzebny do weryfikacji podpisów webhooków.
Lista webhooków
Pobierz wszystkie webhooki dla Twojego konta.
GET /v1/webhooks
Przykładowe żądanie
curl https://api.mailingapi.com/v1/webhooks \
-H "Authorization: Bearer $API_KEY"
Odpowiedź
{
"data": [
{
"id": "wh_abc123",
"url": "https://twojaapka.pl/webhooks/mailingapi",
"events": ["delivered", "bounced"],
"status": "active",
"created_at": "2024-01-15T10:00:00Z"
}
]
}
Pobierz webhook
Pobierz szczegóły konkretnego webhooka.
GET /v1/webhooks/{webhook_id}
Przykładowe żądanie
curl https://api.mailingapi.com/v1/webhooks/wh_abc123 \
-H "Authorization: Bearer $API_KEY"
Odpowiedź
{
"id": "wh_abc123",
"url": "https://twojaapka.pl/webhooks/mailingapi",
"events": ["delivered", "bounced", "complained", "opened", "clicked"],
"description": "Produkcyjny webhook",
"status": "active",
"created_at": "2024-01-15T10:00:00Z",
"stats": {
"total_sent": 15420,
"successful": 15380,
"failed": 40,
"last_success": "2024-01-20T15:30:00Z",
"last_failure": "2024-01-20T14:00:00Z"
}
}
Statusy webhooka
| Status | Opis |
|---|---|
active |
Webhook otrzymuje zdarzenia |
paused |
Tymczasowo wyłączony |
failing |
Wiele kolejnych błędów |
disabled |
Permanentnie wyłączony |
Aktualizuj webhook
Zaktualizuj konfigurację webhooka.
PATCH /v1/webhooks/{webhook_id}
Body żądania
| Pole | Typ | Opis |
|---|---|---|
url |
string | Nowy URL endpointu |
events |
array | Nowa lista zdarzeń |
description |
string | Nowy opis |
status |
string |
active lub paused |
Przykładowe żądanie
curl -X PATCH https://api.mailingapi.com/v1/webhooks/wh_abc123 \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"events": ["delivered", "bounced"],
"status": "paused"
}'
Odpowiedź
{
"id": "wh_abc123",
"url": "https://twojaapka.pl/webhooks/mailingapi",
"events": ["delivered", "bounced"],
"status": "paused",
"updated_at": "2024-01-20T16:00:00Z"
}
Usuń webhook
Usuń endpoint webhooka.
DELETE /v1/webhooks/{webhook_id}
Przykładowe żądanie
curl -X DELETE https://api.mailingapi.com/v1/webhooks/wh_abc123 \
-H "Authorization: Bearer $API_KEY"
Odpowiedź
204 No Content
Format payloadu webhooka
Wszystkie payloady webhooków mają tę strukturę:
{
"id": "evt_1234567890",
"type": "delivered",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"message_id": "msg_abc123",
"from": "hello@twojadomena.pl",
"to": "user@example.com",
"subject": "Twoje zamówienie wysłane",
"metadata": {
"user_id": "usr_123"
}
}
}
Weryfikacja podpisu
Weryfikuj autentyczność webhooka używając nagłówka X-MailingAPI-Signature:
X-MailingAPI-Signature: t=1705315800,v1=5d2a...
Zobacz przewodnik Webhooks po przykłady implementacji.
Kody błędów
| Kod | Opis |
|---|---|
invalid_url |
URL musi być HTTPS |
invalid_events |
Nieznany typ zdarzenia |
webhook_not_found |
ID webhooka nie znalezione |
webhook_disabled |
Webhook został wyłączony |