Reports – SMS – channel summary
This method returns a summary of SMS performance for a selected date range. Use it to check how your SMS messages perform, for example to:
- compare daily bounce rates,
- track click-through trends for different senders,
- see how much revenue your newsletter campaigns generate.
Endpoint
GET /reports/sms/channelSummary
Host: https://api.ecdp.app
Request parameters
| Parameter | Type | Required | Description | Allowed values / Notes |
| x-api-key | string | Yes | API key for authentication | Obtained from Settings > API |
| startDate | string | Yes | Start of the reporting window (inclusive) | Format: YYYY-MM-DD. |
| endDate | string | Yes | End of the reporting window (inclusive) | Format: YYYY-MM-DD. endDate must be later than startDate. |
| grouping | enum | No | Aggregation level for results. Default: Date | One of: Date, Month, Gateway, Sender, Message, MessageType |
| gateway | string | No | Filter: include only events sent through the specified gateway | Single value. Cannot be combined with other filters |
| sender | string | No | Filter: include only events sent from the specified sender | Single value. Cannot be combined with other filters |
| messageType | string | No | Filter: include only events for the specified message type | Newsletter, Scenario. Single value |
Filters
Use filters to narrow results to a specific subset of SMS traffic. The following rules apply:
- Only one filter type per request.
- Each filter accepts exactly one value.
- Sending multiple filters or multiple values returns a 400 Bad Request.
- Filters apply as AND conditions with the date range.
| Filter | Type | Multi-value | Description |
| gateway | string | No | Limits results to a specific gateway (alphanumeric or numeric value) |
| sender | string | No | Limits results to a specific sender name or ID (alphanumeric or numeric value) |
| messageType | string | No | Limits results to a single SMS message type: Newsletter or Scenario |
Grouping options
Exactly one grouping value is allowed per request. Default: grouping=Date. Sending multiple grouping values returns a 400 Bad Request.
| Grouping value | Grouping column in response |
| Date | date (YYYY-MM-DD) |
| Month | month (YYYY-MM) |
| Gateway | gateway |
| Sender | sender |
| Message | messageId, messageName |
| MessageType | messageType |
Responses#
Each object in the array contains exactly one grouping column (determined by the grouping parameter) and the KPI fields below.
| Field | Type | Description |
| sent | integer | Total number of SMS messages sent |
| bounced | integer | Number of messages that failed delivery |
| bouncedPercent | number | Bounced as a percentage of sent. |
| delivered | integer | Number of messages successfully delivered |
| deliveredPercent | number | Delivered as a percentage of sent. |
| clicks | integer | Total number of link clicks |
| clicksPercent | number | Clicks as a percentage of delivered. |
| clickers | integer | Number of unique recipients who clicked at least one link |
| unsubscribes | integer | Number of recipients who unsubscribed |
| revenue | number | Revenue attributed to this SMS traffic, in the business unit’s default currency |
Example requests and responses
Default grouping by date
GET /reports/sms/channelSummary?startDate=2025-09-01&endDate=2025-09-02
Response: OK 200
{
"data": [
{
"date": "2025-09-01",
"sent": 18000,
"bounced": 90,
"bouncedPercent": 0.50,
"delivered": 17850,
"deliveredPercent": 99.17,
"clicks": 820,
"clicksPercent": 4.59,
"clickers": 610,
"unsubscribes": 22,
"revenue": 2100.00
},
{
"date": "2025-09-02",
"sent": 16500,
"bounced": 75,
"bouncedPercent": 0.45,
"delivered": 16425,
"deliveredPercent": 99.55,
"clicks": 760,
"clicksPercent": 4.63,
"clickers": 565,
"unsubscribes": 18,
"revenue": 1895.50
}
]
}Grouping by sender, filtered by message type
GET /reports/sms/channelSummary?startDate=2025-09-01&endDate=2025-09-30&grouping=Sender&messageType=Newsletter
Response: OK 200
{
"data": [
{
"sender": "SHOP24",
"sent": 92000,
"bounced": 540,
"bouncedPercent": 0.59,
"delivered": 91460,
"deliveredPercent": 99.41,
"clicks": 4120,
"clicksPercent": 4.50,
"clickers": 3010,
"unsubscribes": 190,
"revenue": 10450.00
}
]
}Response codes#
| Code | Status | Description |
| 200 | Success | Request processed successfully. Response contains the aggregated SMS data. |
| 204 | No content | Request was valid but no data matches the specified criteria. |
| 400 | Bad request | Invalid or missing parameters — for example, startDate > endDate, multiple filters, or an unsupported grouping value. |
| 401 | Unauthorized | API key is missing, invalid, or expired. Verify your key in Settings > API. |
| 403 | Forbidden | The 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 dates return 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. Each filter accepts exactly one value. Multiple filters or multiple values return 400 Bad Request.
- Unsupported or unrecognized parameter values return 400 Bad Request.
Reference documentation
Swagger – SMS reports