Przegląd API
2 min czytania
REST API MailingAPI pozwala wysyłać emaile transakcyjne, zarządzać domenami, konfigurować webhooki i programowo uzyskiwać dostęp do analityki.
Bazowy URL
Wszystkie żądania API używają tego bazowego URL:
https://api.mailingapi.com/v1
Uwierzytelnianie
Uwierzytelniaj używając tokenów Bearer w nagłówku Authorization:
curl https://api.mailingapi.com/v1/messages \
-H "Authorization: Bearer twoj_klucz_api"
Klucze API są przypisane do pojedynczej domeny. Pobierz swój klucz z Ustawienia → Klucze API.
Zobacz Uwierzytelnianie po szczegóły.
Format żądań
Content-Type
Wysyłaj JSON z Content-Type: application/json:
curl -X POST https://api.mailingapi.com/v1/messages/send \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"from": "hello@twojadomena.pl", "to": "user@example.com", ...}'
Body żądania
Wszystkie żądania POST/PUT/PATCH przyjmują body JSON:
{
"from": "hello@twojadomena.pl",
"to": "user@example.com",
"subject": "Cześć",
"html": "<p>Witaj świecie</p>"
}
Format odpowiedzi
Wszystkie odpowiedzi zwracają JSON ze spójną strukturą.
Odpowiedź sukcesu
{
"id": "msg_abc123",
"status": "queued",
"message": "Email queued for delivery"
}
Odpowiedź listowa
{
"data": [
{"id": "msg_abc123", ...},
{"id": "msg_def456", ...}
],
"meta": {
"total": 150,
"page": 1,
"per_page": 25,
"total_pages": 6
}
}
Odpowiedź błędu
{
"error": {
"type": "validation_error",
"message": "Invalid email address",
"code": "invalid_to_address",
"details": {
"field": "to",
"value": "nie-email"
}
}
}
Metody HTTP
| Metoda | Użycie |
|---|---|
GET |
Pobieranie zasobów |
POST |
Tworzenie zasobów |
PATCH |
Częściowa aktualizacja |
PUT |
Pełna zamiana |
DELETE |
Usuwanie zasobów |
Kody statusów
| Kod | Znaczenie |
|---|---|
200 |
Sukces |
201 |
Utworzono |
204 |
Brak treści (udane usunięcie) |
400 |
Złe żądanie (nieprawidłowe dane) |
401 |
Nieautoryzowany (nieprawidłowy/brak klucza API) |
403 |
Zabroniony (niewystarczające uprawnienia) |
404 |
Nie znaleziono |
422 |
Nieobrobialna encja (walidacja nie powiodła się) |
429 |
Za dużo żądań (rate limited) |
500 |
Wewnętrzny błąd serwera |
Paginacja
Endpointy listowe wspierają paginację:
curl "https://api.mailingapi.com/v1/messages?page=2&per_page=50" \
-H "Authorization: Bearer $API_KEY"
Parametry:
-
page— Numer strony (domyślnie: 1) -
per_page— Elementów na stronę (domyślnie: 25, max: 100)
Odpowiedź zawiera metadane paginacji:
{
"data": [...],
"meta": {
"total": 150,
"page": 2,
"per_page": 50,
"total_pages": 3
}
}
Filtrowanie
Wiele endpointów wspiera filtrowanie:
curl "https://api.mailingapi.com/v1/messages?status=delivered&from=2024-01-01" \
-H "Authorization: Bearer $API_KEY"
Typowe filtry:
-
from/to— Zakres dat (ISO 8601) -
status— Status zasobu -
tag— Filtruj po tagu
Rate limiting
Żądania API są limitowane per klucz API:
| Endpoint | Limit |
|---|---|
| Wysyłka emaila | 100/minutę |
| Wysyłka batch | 10/minutę |
| Inne endpointy | 1000/minutę |
Nagłówki rate limit są dołączone do odpowiedzi:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1705315860
Przy przekroczeniu limitu otrzymujesz 429 Too Many Requests:
{
"error": {
"type": "rate_limit_exceeded",
"message": "Too many requests",
"retry_after": 5
}
}
Idempotencja
Dla żądań POST używaj kluczy idempotencji by zapobiec duplikatom:
curl -X POST https://api.mailingapi.com/v1/messages/send \
-H "Authorization: Bearer $API_KEY" \
-H "Idempotency-Key: unikalne-id-zadania-123" \
-d '{...}'
- Klucze są ważne przez 24 godziny
- Powtórzone żądania z tym samym kluczem zwracają oryginalną odpowiedź
- Używaj UUID lub unikalnych identyfikatorów
Wersjonowanie
API jest wersjonowane przez ścieżkę URL:
https://api.mailingapi.com/v1/...
Utrzymujemy wsteczną kompatybilność wewnątrz głównych wersji. Zmiany łamiące wymagają nowej wersji.
SDK
Oficjalne SDK dostępne:
Pełna dokumentacja SDK: SDK i biblioteki.
Zasoby API
| Zasób | Opis |
|---|---|
| Messages | Wysyłka i śledzenie emaili |
| Domains | Zarządzanie domenami wysyłkowymi |
| Webhooks | Konfiguracja powiadomień o zdarzeniach |
| Templates | Szablony email |
| Validation | Walidacja adresów email |
| Analytics | Statystyki i raportowanie |