Skip to content

Reports – Web push – single message report

This method returns performance statistics for a single Web Push message in ECDP. It includes key delivery and engagement metrics such as sent messages, bounces, views, clicks, and revenue.

You can also retrieve basic message details, such as the message name, UTM parameters, and the related website. This data helps you understand how a specific Web Push message performed and supports decisions about how to improve future messages.

Endpoint

GET /reports/webpush/singleMessage/{id}

Host: https://api.ecdp.app

Request parameters

ParameterLocationTypeRequiredDescriptionAllowed values / Notes
x-api-keyheaderstringYesAPI key for authenticationHeader. Obtain from Settings > API.
idpathintegerYesIdentifier of the Web Push messagePath parameter. Must not be empty.
startDatequerystringConditionalStart of the reporting date rangeRequired for Scenario messages; not allowed for Newsletter. Format: YYYY-MM-DD.
endDatequerystringConditionalEnd of the reporting date rangeRequired for Scenario messages; not allowed for Newsletter. Format: YYYY-MM-DD. Must be ≥ startDate.
websitequeryintegerNoFilter results by website IDAccepts a single integer ID. Acts as a filter — see Filters below.
groupingquerystringNoDefines the aggregation level of resultsMessage (default), Website
includeDetailsquerybooleanNoWhether to include the message metadata blocktrue or false. Default: false.

Filters

Use the website parameter to narrow results to a specific website origin. Only one filter per request is supported.

FilterTypeMulti-valueDescription
websiteintegerNoReturns data only for the specified website ID

Grouping options

Exactly one grouping value is allowed per request. If omitted, the default grouping applies.

Default: grouping=Message

Grouping valueGrouping columns in response
MessagemessageId, messageName
WebsitewebsiteId, websiteName

Responses

Web push report data

Each object in the array represents one row of aggregated statistics, grouped according to the grouping parameter.

FieldTypePresent whenDescription
messageIdstringgrouping=MessageIdentifier of the message
messageNamestringgrouping=MessageName of the message
websiteIdintegergrouping=WebsiteIdentifier of the website
websiteNamestringgrouping=WebsiteName of the website
sentintegerAlwaysTotal number of notifications sent
bounceintegerAlwaysNumber of notifications that failed to deliver
bouncePercentnumberAlwaysBounce rate: bounce / sent. Returns 0.0 if sent = 0.
viewintegerAlwaysNumber of notifications displayed to recipients
viewPercentnumberAlwaysView rate: view / sent. Returns 0.0 if sent = 0.
clickintegerAlwaysNumber of clicks on the notification
clickPercentnumberAlwaysClick rate: click / sent. Returns 0.0 if sent = 0.
clicksToViewsPercentnumberAlwaysClick-to-view rate: click / view. Returns 0.0 if view = 0.
revenuenumberAlwaysTotal revenue attributed to this message
currencystringAlwaysCurrency code (ISO 4217) for the revenue value

Message details

Present only when includeDetails=true.

FieldTypeDescription
messageIdstringUnique identifier of the message
typestringMessage type: Newsletter or Scenario
namestringMessage name as configured in ECDP
utms[]arrayArray of UTM parameter objects: { name, value }
sentDatestring (ISO-8601 UTC)Date and time the message was sent
websiteIdintegerID of the website the Web Push belongs to
websiteNamestringName of the website the Web Push belongs to

Example requests and responses

Newsletter message with details and grouping option ‘Message’

GET /reports/webpush/singleMessage/9921?includeDetails=true

Response (200 OK):

{
  "messageDetails": {
    "messageId": "9921",
    "type": "Newsletter",
    "name": "Spring Deals WebPush",
    "utms": [
      { "name": "utm_source", "value": "webpush" },
      { "name": "utm_campaign", "value": "spring_deals" }
    ],
    "sentDate": "2025-03-10T08:00:00Z",
    "websiteId": 1,
    "websiteName": "shop.example.com"
  },
  "data": [
    {
      "messageId": "9921",
      "messageName": "Spring Deals WebPush",
      "sent": 150000,
      "bounce": 1200,
      "bouncePercent": 0.008,
      "view": 72000,
      "viewPercent": 0.48,
      "click": 9500,
      "clickPercent": 0.0633,
      "clicksToViewsPercent": 0.1319,
      "revenue": 8421.55,
      "currency": "USD"
    }
  ]
}

Web push message in scenario with date range, website filter, and ‘Website’ grouping

GET /reports/webpush/singleMessage/457?startDate=2025-03-01&endDate=2025-03-07&website=1&grouping=Website

Response (200 OK):

{
  "data": [
    {
      "websiteId": 1,
      "websiteName": "shop.example.com",
      "sent": 28000,
      "bounce": 310,
      "bouncePercent": 0.0111,
      "view": 14050,
      "viewPercent": 0.5018,
      "click": 2100,
      "clickPercent": 0.075,
      "clicksToViewsPercent": 0.1494,
      "revenue": 2310.00,
      "currency": "PLN"
    }
  ]
}

Response codes

CodeStatusDescription
200OKRequest processed successfully. Response contains report data.
204No contentRequest is valid, but no data matches the specified parameters.
400Bad requestInvalid or missing parameters. Check date range rules, filter, and grouping constraints.
401UnauthorizedAPI key is missing, invalid, or expired.
403ForbiddenThe API key does not have permission to access this resource.
500Internal server errorServer-side error. Retry the request or contact support if the issue persists.

Validation and behavior rules

  • Only one grouping value is allowed per request. Multiple grouping values 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.
  • For Scenario messages, both startDate and endDate are required. If either is missing, the request returns 400 Bad Request.
  • For Newsletter messages, providing startDate or endDate returns 400 Bad Request.

Reference documentation

Swagger – Reports web push

https://api.ecdp.app/swagger/index.html