Raporty – E-mail – raport pojedynczej wiadomości
Ta metoda zwraca metryki dostarczalności i zaangażowania dla pojedynczej wysłanej wiadomości e-mail. Dzięki niej możesz sprawdzić najważniejsze wyniki, takie jak liczba dostarczonych wiadomości, otwarcia i kliknięcia, razem z ich wartościami procentowymi.
Statystyki są dostępne dla całej wiadomości, ale możesz też zobaczyć je w podziale na domenę odbiorcy, rodzinę domen lub adres IP, z którego została wysłana wiadomość. W razie potrzeby metoda zwraca również podstawowe informacje o wiadomości, takie jak temat, parametry UTM czy data wysyłki.
Endpoint
GET /reports/email/singleMessage/{id}
Host: https://api.ecdp.app
Parametry zapytania
| Parametr | Typ | Wymagany | Opis | Dozwolone wartości / Uwagi |
| x-api-key | string | tak | Klucz API do uwierzytelniania | Klucz API do uwierzytelniania |
| id | integer | tak | Identyfikator wiadomości w ECDP | Parametr ścieżki. Nie może być pusty. |
| startDate | string | warunkowy | Początek zakresu dat raportu | YYYY-MM-DD. Wymagany dla Scenario i Confirmation. Niedozwolony dla Newsletter. |
| endDate | string | warunkowy | Koniec zakresu dat raportu | YYYY-MM-DD. Wymagany dla Scenario i Confirmation. Niedozwolony dla Newsletter. endDate musi być późniejszy niż startDate. |
| grouping | enum | nie | Poziom agregacji danych w odpowiedzi | Message (domyślnie), Domain, DomainFamily, IP |
| domain | string | nie | Filtruje wyniki do określonej domeny odbiorcy | Pojedyncza wartość, np. gmail.com. Nie można łączyć z innymi filtrami. |
| domainFamily | string | nie | Filtruje wyniki do rodziny domen | Pojedyncza wartość, np. gmail. Nie można łączyć z innymi filtrami. |
| ip | string | nie | Filtruje wyniki do określonego IP nadawcy lub jego typu | Pojedyncza wartość: Premium, Shared lub konkretny adres IP, np. 1.2.3.4. Nie można łączyć z innymi filtrami. |
| includeDetails | boolean | nie | Czy uwzględnić metadane wiadomości w odpowiedzi | true lub false (domyślnie: false). Akceptuje też 1 lub 0. |
Filtry
W jednym zapytaniu dozwolony jest tylko jeden typ filtra, a każdy filtr przyjmuje dokładnie jedną wartość. Podanie kilku filtrów lub kilku wartości zwraca błąd 400 Bad Request.
| Filtr | Typ | Opis |
| domain | string | Uwzględnia tylko zdarzenia dla podanej domeny odbiorcy, np. gmail.com. |
| domainFamily | string | Uwzględnia tylko zdarzenia dla podanej rodziny domen, np. gmail. |
| ip | string | Uwzględnia tylko zdarzenia wysłane z podanego adresu IP lub typu IP: Premium, Shared lub konkretny adres. |
Opcje grupowania
W jednym zapytaniu dozwolona jest dokładnie jedna wartość grupowania. Grupowanie określa, która kolumna pojawi się w każdym wierszu tablicy data[].
Domyślnie: grouping=Message
| Wartość grupowania | Kolumna grupowania w odpowiedzi |
| Message | messageId, messageSubject |
| Domain | domain |
| DomainFamily | domainFamily |
| IP | ip |
Odpowiedź
Email report data
Każdy obiekt w tablicy data zawiera dokładnie jedną kolumnę grupowania (określoną przez parametr grouping), po której następują pola KPI opisane poniżej.
| Pole | Typ | Opis |
| messageId | string | Obecne gdy grouping=Message. |
| messageSubject | string | Temat wiadomości. Obecne gdy grouping=Message. |
| domain | string | Obecne gdy grouping=Domain. |
| domainFamily | string | Obecne gdy grouping=DomainFamily. |
| ip | string | Obecne gdy grouping=IP. |
| bounced | integer | Liczba odbitych wiadomości. |
| bouncedPercent | number | Udział odbitych wiadomości w łącznej liczbie wysłanych. |
| delivered | integer | Liczba skutecznie dostarczonych wiadomości. |
| deliveredPercent | number | Udział dostarczonych wiadomości w łącznej liczbie wysłanych. |
| opens | integer | Łączna liczba otwarć (wliczając wielokrotne otwarcia). |
| opensPercent | number | Udział otwarć w liczbie dostarczonych wiadomości. |
| uniqueOpens | integer | Liczba odbiorców, którzy otworzyli wiadomość co najmniej raz. |
| clicks | integer | Łączna liczba kliknięć w linki. |
| clicksPercent | number | Udział kliknięć w liczbie dostarczonych wiadomości. |
| uniqueClicks | integer | Liczba odbiorców, którzy kliknęli co najmniej raz. |
| clicksToOpensPercent | number | Udział kliknięć w liczbie otwarć. |
| unsubscribes | integer | Liczba wypisań. |
| complaints | integer | Liczba zgłoszeń spamu. |
| revenue | number | Przychód przypisany do tej wiadomości. |
| currency | string | Kod waluty dla wartości przychodu (ISO 4217). |
Message details
Obecne tylko gdy includeDetails=true.
| Pole | Typ | Opis |
| messageId | string | Identyfikator wiadomości. |
| type | string | Typ wiadomości: Newsletter, Scenario lub Confirmation. |
| subject | string | Temat wiadomości e-mail. |
| utms[] | array | Tablica obiektów parametrów UTM, każdy z polami name i value. |
| sentDate | string (ISO-8601 UTC) | Data i godzina wysłania wiadomości. Obecne tylko dla wiadomości typu Newsletter. |
Przykładowe zapytania i odpowiedzi
Newsletter z domyślnym grupowaniem i szczegółami wiadomości
GET /reports/email/singleMessage/12345?includeDetails=true
Odpowiedź: OK 200
{
"messageDetails": {
"messageId": "12345",
"type": "Newsletter",
"subject": "Wiosenna promocja",
"utms": [
{ "name": "utm_source", "value": "newsletter" },
{ "name": "utm_campaign", "value": "marzec" }
],
"sentDate": "2025-02-14T10:05:00Z"
},
"data": [
{
"messageId": "12345",
"messageSubject": "Wiosenna promocja",
"bounced": 20,
"bouncedPercent": 0.002,
"delivered": 9980,
"deliveredPercent": 0.998,
"opens": 5400,
"opensPercent": 0.541,
"uniqueOpens": 4200,
"clicks": 1200,
"clicksPercent": 0.120,
"uniqueClicks": 950,
"clicksToOpensPercent": 0.222,
"unsubscribes": 10,
"complaints": 3,
"revenue": 3500.45,
"currency": "PLN"
}
]
}Wiadomość e-mail użyta w scenariuszu, zgrupowana według domeny, z filtrem do gmail.com
GET /reports/email/singleMessage/123?startDate=2025-03-01&endDate=2025-03-07&grouping=Domain&domain=gmail.com
Odpowiedź: OK 200
{
"data": [
{
"domain": "gmail.com",
"bounced": 5,
"bouncedPercent": 0.001,
"delivered": 4995,
"deliveredPercent": 0.999,
"opens": 3200,
"opensPercent": 0.640,
"uniqueOpens": 2500,
"clicks": 650,
"clicksPercent": 0.130,
"uniqueClicks": 500,
"clicksToOpensPercent": 0.203,
"unsubscribes": 4,
"complaints": 1,
"revenue": 1780.25,
"currency": "PLN"
}
]
}Kody odpowiedzi#
| Kod | Status | Opis |
| 200 | OK | Zapytanie przetworzone pomyślnie. Odpowiedź zawiera statystyki wiadomości. |
| 204 | No content | Zapytanie jest prawidłowe, ale dla podanych parametrów nie ma dostępnych danych. |
| 400 | Bad request | Nieprawidłowe lub brakujące parametry. Sprawdź ograniczenia filtrów i grupowania, reguły zakresu dat oraz pola wymagane. |
| 401 | Unauthorized | Klucz API jest brakujący, nieprawidłowy lub wygasły. Zweryfikuj klucz w Ustawienia > API. |
| 403 | Forbidden | Klucz API nie ma uprawnień dostępu do tego zasobu. |
| 500 | Internal server error | Błąd po stronie serwera. Ponów żądanie lub skontaktuj się z pomocą techniczną, jeśli problem się powtarza. |
Reguły walidacji i działania#
- Dla wiadomości Newsletter: parametry startDate i endDate są niedozwolone. Ich podanie zwraca błąd 400 Bad Request.
- Dla wiadomości Scenario i Confirmation: oba parametry startDate i endDate są wymagane. Pominięcie któregokolwiek z nich zwraca błąd 400 Bad Request.
- W jednym żądaniu dozwolona jest dokładnie jedna wartość grupowania. Podanie kilku wartości zwraca błąd 400 Bad Request.
- W jednym żądaniu dozwolony jest dokładnie jeden typ filtra z dokładnie jedną wartością. Podanie kilku filtrów lub kilku wartości zwraca błąd 400 Bad Request.
Dokumentacja referencyjna
Swagger — Reports email