Reports – Web push – channel summary
This method returns a summary of Web Push channel performance for a selected date range. It includes key delivery, engagement, and revenue metrics, grouped in a way that supports your analysis.
You can use this data to understand how your Web Push channel performs over time, compare results across different websites, or see which types of messages generate the most clicks and revenue.
Endpoint
GET /reports/webpush/channel-summary
Host: https://api.ecdp.app
Request parameters
| Parameter | Location | Type | Required | Description | Allowed values / Notes |
| x-api-key | header | string | yes | API key for authentication. | Obtain from Settings > API. |
| startDate | query | string | yes | Start of the reporting window (inclusive). | Format: YYYY-MM-DD. |
| endDate | query | string | yes | End of the reporting window (inclusive). | Format: YYYY-MM-DD. Must be ≥ startDate. |
| grouping | query | string | no | Aggregation level for results. | One of: Date, Month, Website, Message, MessageType. Default: Date. |
| websiteId | query | integer or string | no | Narrows results to a specific website. | Website ID (e.g., 123) or name (e.g., “MyWebsite”). |
| messageType | query | string | no | Narrows results to a single message type. | Newsletter, Scenario. |
Filters
Use filters to narrow the result set to a specific subset of data.
- Only one filter type per request is allowed.
- Each filter accepts exactly one value.
- Sending multiple filters or multiple values returns 400 Bad Request.
| Filter | Type | Multi-value | Description |
| websiteId | integer or string | No | Returns data for the specified website only. |
| messageType | string | No | Returns data for the specified message type only. |
Grouping options
Exactly one grouping value is allowed per request. If omitted, results are grouped by date.
Default: grouping=Date
| Grouping value | Grouping column(s) in response |
| Date | date (format: YYYY-MM-DD) |
| Month | month (format: YYYY-MM) |
| Website | websiteId, websiteName |
| Message | messageId, messageSubject |
| MessageType | messageType |
Response
Each row in the response array contains exactly one grouping column (determined by the grouping parameter) and the following KPIs:
| Field | Type | Description |
| sent | integer | Total number of Web Push notifications sent. |
| bounced | integer | Number of notifications that could not be delivered. |
| bouncedPercent | number | Bounced as a percentage of sent. Returns 0.0 if sent = 0. |
| views | integer | Number of notifications seen by recipients (impressions). |
| viewsPercent | number | Views as a percentage of sent. Returns 0.0 if sent = 0. |
| clicks | integer | Number of clicks on delivered notifications. |
| clicksPercent | number | Clicks as a percentage of sent. Returns 0.0 if sent = 0. |
| revenue | number | Total revenue attributed to this group. |
| currency | string | Currency code for the revenue value (ISO 4217, e.g., EUR). |
Example requests and responses
Get summary report with default grouping by date
GET /reports/webpush/channel-summary?startDate=2025-09-01&endDate=2025-09-07
Response (200 OK):
{
"data": [
{
"date": "2025-09-01",
"sent": 52000,
"bounced": 1500,
"bouncedPercent": 2.88,
"views": 43000,
"viewsPercent": 82.69,
"clicks": 6200,
"clicksPercent": 11.92,
"revenue": 18250.00,
"currency": "USD"
},
{
"date": "2025-09-02",
"sent": 48000,
"bounced": 1200,
"bouncedPercent": 2.50,
"views": 40000,
"viewsPercent": 83.33,
"clicks": 5800,
"clicksPercent": 12.08,
"revenue": 16540.75,
"currency": "USD"
}
]
}Get summary report with grouping by website, and ‘message type’ filter
GET /reports/webpush/channel-summary?startDate=2025-09-01&endDate=2025-09-30&grouping=Website&websiteId=101&messageType=Newsletter
Response (200 OK):
{
"data": [
{
"websiteId": 101,
"websiteName": "My Website",
"sent": 94000,
"bounced": 2800,
"bouncedPercent": 2.98,
"views": 79800,
"viewsPercent": 84.89,
"clicks": 10900,
"clicksPercent": 11.60,
"revenue": 41250.50,
"currency": "USD"
}
]
}Response codes
| Code | Status | Description |
| 200 | OK | Request processed successfully. Response contains the channel summary data. |
| 204 | No content | Request was valid but no data matched the given parameters. |
| 400 | Bad request | Invalid or missing parameters, conflicting filters, or invalid date range. |
| 401 | Unauthorized | API key is missing, invalid, or expired. Verify your key in Settings > API. |
| 403 | Forbidden | API key does not have permission to access this resource. |
| 500 | Internal server error | Server-side error. Retry the request or contact support if the issue persists. |
Validation and behavior rules
- startDate must be less than or equal to endDate. Reversed date range returns 400 Bad Request.
- Only one grouping value is allowed per request. Multiple groupings return 400 Bad Request.
- Only one filter type is allowed per request, with exactly one value. Multiple filters or values return 400 Bad Request.
Reference documentation
Swagger – Reports web push