Statistics API v1

List of methods for working with statistics

This is an old version of the Statistics API. You can still use these methods, but we recommend using the Statistics API v2 to get the most out of your statistics.

getMsgStats (deprecated)

This method is deprecated. Please use the totalsByIntervals method instead.

Retrieve stats for a specific message.

POST https://go.pushwoosh.com/json/1.3/getMsgStats

Request Body

{
    "status_code": 200,
    "status_message": "OK",
    "response": {
        "request_id": "b3337d8ec78f67280a40a5b89050c0c0"
    }
}

Example
  {
      "request":{
        "auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
        "message": "xxxx-xxxxxxx-xxxxxx" // required, message code obtained in /createMessage request    
      }
  }

Like every scheduled request, /getMsgStats request requires an additional /getResults request

Response body:

Scheduled (/getResults) response:

Example
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "formatter": "minutely",
    "rows": [
      {
        "datetime": "2015-09-30 12:54:00",
        "action": "send",
        "count": "3"
      },
      {
        "datetime": "2015-09-30 12:54:00",
        "action": "open",
        "count": "2"
      },
      {
        "datetime": "2015-09-30 12:54:00",
        "action": "send",
        "count": "59"
      }
    ],
    
    // conversion (if goal tracking is allowed)
    "conversion": {
      "send": 10,
      "open": 5,
      "events": [
        {"uid": 1, "event": "event name", "hits": 5, "conversion": "100%",
          "revenue": 15.34}
      ]
    }
  }
}

getMsgPlatformsStats (deprecated)

This method is deprecated. Please use the totalsByIntervals method instead.

Retrieve specific message's statistics for one or several platforms only.

POST https://api.pushwoosh.com/json/1.3/getMsgPlatformsStats

Request Body

{
    "status_code": 200,
    "status_message": "OK",
    "response": {
        "request_id": "287870092dc23175af5dc48ba1dc7f3c"
    }
}

Example
 {
      "request":{
        "auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
        "message": "xxxx-xxxxxxx-xxxxxx", // required, message code obtained from /createMessage request or Message History details
        "platforms":[1,2,3,4,5] // optional, list of platform types. Please see /registerDevice for the complete list of platform types     
      }
 }

As every scheduled request, /getMsgPlatformsStats request requires an additional /getResults request.

Response body:

Scheduled (/getResults) response:

Example
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "formatter": "minutely",
    "rows": [
      {
        "datetime": "2015-09-30 12:54:00",
        "action": "send",
        "count": "3",
      },
      {
        "datetime": "2015-09-30 12:54:00",
        "action": "open",
        "count": "2",
      },
      {
        "datetime": "2015-09-30 12:54:00",
        "action": "send",
        "count": "59",
      },
      .................
    ]
  }
}

getApplicationSubscribersStats

Displays the app's subscribers list grouped by the types of their devices.

POST https://api.pushwoosh.com/json/1.3/getApplicationSubscribersStats

Request Body

{
 "status_code": 200,
 "status_message": "OK",
 "response": {
        "IOS": 1,
        "BLACKBERRY": 0,
        "ANDROID": 1,
        "WINDOWS_PHONE": 0,
        "OSX": 0,
        "WINDOWS": 0,
        "AMAZON": 0,
        "SAFARI": 0,
        "FIREFOX": 0 
    }
}

Example
   {
      "request": {
        "auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
        "application": "XXXXX-XXXXX" // required, Pushwoosh application code
      }
   }

getAppStats

Get the statistics of the specific app for a specific time period.

POST https://cp.pushwoosh.com/json/1.3/getAppStats

Request Body

{
    "status_code": 200,
    "status_message": "OK",
    "response": {
        "request_id": "c93a202f439235f9adaaa06d651548ab"
    }
}

Example
    {
      "request": {
        "auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
        "application": "XXXXX-XXXXX", // required, Pushwoosh application code
        "datefrom": "2013-06-04 00:00:00", // required, date and time, start of the reporting period
        "dateto": "2013-06-07 00:00:00" // required, date and time, end of the reporting period
      }
    }

Statistic displays registered actions for application, device or message, for the timeframe specified.

Reports are automatically aggregated using the following rules: yearly > 1 year monthly > 1 month daily > 1 day hourly > 3 hours minutely in other cases.

Actions: Application Level: open, install

Device Level: register, unregister

Message level: send, open

All statistics objects have the same format:

Each of the report rows is a dictionary:

As every scheduled request, /getAppStats request requires an additional /getResults request.

Response body:

Scheduled (/getResults) response body:

Example
{
	"error": {
		"code": 0,
		"message": "OK"
	},
	"json_data": {
		"applications": {
			"formatter": "hourly",
			"rows": [{
				"count": 0,
				"action": "open",
				"datetime": "2013-06-06 00:00:00"
			}, ...
      ]
		}
	}
}

getCampaignStats

Retrieve statistics of a particular campaign for a specific time period.

POST https://api.pushwoosh.com/json/1.3/getCampaignStats

Request Body

{
    "status_code": 200,
    "status_message": "OK",
    "response": {
        "request_id": "a3ef436445abfdef6255cc2f65ce7614"
    }
}

    {
      "request": {
        "auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
        "campaign": "XXXXX-XXXXX", // required, campaign ID
        "datefrom": "Y-m-d H:i:s", // required, date and time, start of the reporting period
        "dateto": "Y-m-d H:i:s" // required, date and time, end of the reporting period
      }
    }

As every scheduled request, /getCampaignStats request requires an additional /getResults request.

/getResults response:

Example
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "formatter": "hourly",
    "rows": [
      {
        "count": 0,
        "action": "open",
        "datetime": "2018-05-09 00:00:00",
        "platformid": 14
      },
      {
        "count": 0,
        "action": "send",
        "datetime": "2018-05-09 00:00:00",
        "platformid": 14
      },
      {
        "count": 0,
        "action": "send",
        "datetime": "2018-05-11 00:00:00",
        "platformid": 14
      }
    ],
    
    // conversion (if goal tracking is allowed)
    "conversion": {
      "send": 10,
      "open": 5,
      "events": [
        {"uid": 1, "event": "event name", "hits": 5, "conversion": "100%",
          "revenue": 15.34}
      ]
    }
  }
}

getEventStatistics

Retrieves the number of times the Event was triggered during the specified period.

POST https://cp.pushwoosh.com/json/1.3/getEventStatistics

Request Body

{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "request_id": "DC1_bc63f00c736696d75cea17aa6855ba19"
  }
}

{
   "request" : {
      "auth":"yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
      "application": "XXXXX-XXXXX", // required, Pushwoosh application code
      "event" : "Event name", // required, the name of Event exactly as created in Pushwoosh Control Panel
      "date_from" : "2018-09-12", // required, start of the reporting period
      "date_to" : "2018-09-12", // required, end of the reporting period
      "attributes" : [                  // optional 
         {
            "name": "attributeName",
            "operator" : "EQ",
            "values": ["val"]
         }
      ]
   }
}

Like every scheduled request, /getEventStatistics request requires an additional /getResults request

Response body:

Scheduled (/getResults) response:

Example
{
  "status_code": 200,
  "status_message": "OK",
  "response": [
    {
      "date": "2018-09-12 00:00",
      "count": 12
    },
    {
      "date": "2018-09-12 01:00",
      "count": 2
    },
    {
      "date": "2018-09-12 02:00",
      "count": 4
    },
    {
      "date": "2018-09-12 03:00",
      "count": 8
    },
    {
      "date": "2018-09-12 04:00",
      "count": 9
    },
    {
      "date": "2018-09-12 05:00",
      "count": 2
    },
    {
      "date": "2018-09-12 06:00",
      "count": 0
    },
    {
      "date": "2018-09-12 07:00",
      "count": 0
    },
    {
      "date": "2018-09-12 08:00",
      "count": 0
    },
    {
      "date": "2018-09-12 09:00",
      "count": 0
    },
    {
      "date": "2018-09-12 10:00",
      "count": 0
    },
    {
      "date": "2018-09-12 11:00",
      "count": 0
    },
    {
      "date": "2018-09-12 12:00",
      "count": 0
    },
    {
      "date": "2018-09-12 13:00",
      "count": 0
    },
    {
      "date": "2018-09-12 14:00",
      "count": 0
    },
    {
      "date": "2018-09-12 15:00",
      "count": 0
    },
    {
      "date": "2018-09-12 16:00",
      "count": 0
    },
    {
      "date": "2018-09-12 17:00",
      "count": 0
    },
    {
      "date": "2018-09-12 18:00",
      "count": 0
    },
    {
      "date": "2018-09-12 19:00",
      "count": 0
    },
    {
      "date": "2018-09-12 20:00",
      "count": 0
    },
    {
      "date": "2018-09-12 21:00",
      "count": 0
    },
    {
      "date": "2018-09-12 22:00",
      "count": 0
    },
    {
      "date": "2018-09-12 23:00",
      "count": 0
    }
  ]
}

getTagStats

Retrieve statistics for the specified Tag.

POST https://go.pushwoosh.com/json/1.3/getTagStats

Request Body

{
    "status_code": 200,
    "status_message": "OK",
    "response": {
        "request_id": "2702dd59b826e4a23b2f1af24de53108" //request_id for /getResults method
    }
}

Example
  {
       "request":{
          "auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
          "tag": "TAG_NAME", // required, tag name exactly as in Pushwoosh Control Panel
          "applications": ["APPLICATION_1", "APPLICATION_2", "APPLICATION_3"] // optional. Specify only when the tag is app specific.     
       }
    }

As every scheduled request, getTagStats request requires an additional /getResults request.

/getResults response:

{
	"status_code": 200,
	"status_message": "OK",
	"response": {
		"fileName": "DIRECT_FILE_URL.csv" // direct link to the csv file
	}
}

Received file is a CSV file with a semicolon ";" separator.

CSV file content example:

13C2B-72C62;ua_settingpushbod;3
13C2B-72C62;ua_settingpushhealth;3
13C2B-72C62;ua_settingpushstrength;3
13C2B-72C62;ua_settingpushupdate;2

getSubscribersStatistics

Retrieves app subscribers stats for a time period.

POST https://api.pushwoosh.com/api/v2/statistics/application/getSubscribersStatistics

Retrieves app subscribers stats for a time period.

Headers

Request Body

{
  "statistics": [
    {
      "timestamp": "YYYY-MM-DD hh:mm:ss",
      "platform": 1,
      "push_enabled": 100,
      "push_disabled": 100
    }
  ]
}
Example request
curl --location --request POST 'https://go.pushwoosh.com/api/v2/statistics/application/getSubscribersStatistics' \
--header 'Authorization: Key 3a2X......828JreCk48f' \
--header 'Content-Type: application/json' \
--data-raw '{
    "application_code": "12345-67890", // Pushwoosh app code
    "timestamp_from": "2022-08-01 00:00:00", // UTC+0
    "timestamp_to": "2022-09-01 00:00:00" // UTC+0
}'
Example response
{
  "statistics": [
    {
      "timestamp": "YYYY-MM-DD hh:mm:ss", // UTC+0
      "platform": 1,
      "push_enabled": 100,
      "push_disabled": 100
    }
  ]
}

Please take into consideration that the intervals between timestamps in the response depend on the period you send in your request as follows:

  • if you request the stats for a period longer than one year, the stats timestamps interval will be a year;

  • if the stats period equals a year, the interval between response's timestamps equals a month;

  • for periods longer than a month but less than a year, stats for every day will be returned;

  • for periods less than a month, the response will include stats for every hour.

Last updated