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

Retrieve stats for a specific message.

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

Request Body

NameTypeDescription

auth*

string

API access token from Pushwoosh Control Panel.

message*

string

Message code obtained in /createMessage request.

{
    "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:

Field

Type

Description

request_id

string

Scheduled request Id. Please check/getResults method for more information

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

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

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

Request Body

NameTypeDescription

auth*

string

API access token from Pushwoosh Control Panel.

message*

string

Message code obtained in /createMessage request.

platforms

array

List of platform types, array of integers. See /registerDevice for the complete list.

{
    "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:

Field

Type

Description

request_id

string

Scheduled request Id. Please check/getResults method for more information

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

NameTypeDescription

auth*

string

API access token from Pushwoosh Control Panel.

application*

string

Pushwoosh application code.

{
 "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

NameTypeDescription

auth*

string

API access token from Pushwoosh Control Panel.

application*

string

Pushwoosh application code.

datefrom*

string

Date and time, start of the reporting period. Formatted dare: Y-m-d H:i:s

dateto*

string

Date and time, end of the reporting period. Formatted date: Y-m-d H:i:s

{
    "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:

Field

Type

Description

formatter

string

report scale: yearly, monthly, daily, hourly, minutely

rows

list

report rows

Each of the report rows is a dictionary:

Field

Type

Description

count

int

registered actions count

action

string

registered action

datetime

string

Formatted date: Y-m-d H:i:s

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

Response body:

Field

Type

Description

request_id

string

Scheduled request ID. Please check /getResults method for more information.

Scheduled (/getResults) response body:

Field

Type

Description

applications

dictionary

statistics for applications

devices

dictionary

statistics for devices

messages

dictionary

statistics for messages

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

NameTypeDescription

auth*

string

API access token from Pushwoosh Control Panel.

campaign*

string

Campaign ID.

datefrom*

string

Date and time, start of the reporting period. Formatted date: Y-m-d H:i:s

dateto*

string

Date and time, end of the reporting period. Formatted date: Y-m-d H:i:s

{
    "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

NameTypeDescription

auth*

string

API access token from Pushwoosh Control Panel

application*

string

Pushwoosh application code

event*

string

Event name exactly as created in Pushwoosh Control Panel

date_from*

string

Start of the period to get stats for

date_to*

string

End of the period to get stats for

attributes

array

An array of the Event attributes

{
  "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:

Field

Type

Description

request_id

string

Scheduled request Id. Please check/getResults method for more information

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

NameTypeDescription

auth*

string

API access token from Pushwoosh Control Panel.

tag*

string

Tag name.

applications

array

List of applications. Specify only when the tag is application-specific.

{
    "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 http://api.pushwoosh.com/api/v2/statistics/application/getSubscribersStatistics

Retrieves app subscribers stats for a time period.

Headers

NameTypeDescription

Authorization*

string

API access token in the following format: Key PKX.......NHg

Content-Type*

string

application/json

Request Body

NameTypeDescription

application_code*

string

Pushwoosh app code

timestamp_from*

string

Timestamp of the stats period start date (YYYY-MM-DD hh:mm:ss, UTC+0)

timestamp_to*

string

Timestamp of the stats period end date (YYYY-MM-DD hh:mm:ss, UTC+0)

{
  "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.

Period in your requestInterval in response

Over 1 year

1 year

1 year

1 month

1 month - 1 year

Every day

Less than a month

Every hour

Last updated