curl --request GET \
--url 'https://api.onesignal.com/notifications/{message_id}?app_id={app_id}' \
--header 'Authorization: <authorization>'import Onesignal from '@onesignal/node-onesignal';
const configuration = Onesignal.createConfiguration({
restApiKey: 'YOUR_REST_API_KEY',
});
const apiInstance = new Onesignal.DefaultApi(configuration);
// string
const appId: string = "YOUR_APP_ID";
// string
const notificationId: string = "b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88";
try {
const response = await apiInstance.getNotification(appId, notificationId);
console.log(response);
} catch (e) {
if (e instanceof Onesignal.ApiException) {
// `e.errorMessages` flattens any error-envelope shape to a `string[]`;
// the raw parsed body remains on `e.body`.
console.error("getNotification failed: HTTP " + e.code, e.errorMessages);
} else {
throw e;
}
}import onesignal
from onesignal.api import default_api
from onesignal.models import *
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
# Some of the OneSignal endpoints require ORGANIZATION_API_KEY token for authorization, while others require REST_API_KEY.
# We recommend adding both of them in the configuration page so that you will not need to figure it out yourself.
configuration = onesignal.Configuration(
rest_api_key = "YOUR_REST_API_KEY", # App REST API key required for most endpoints
organization_api_key = "YOUR_ORGANIZATION_API_KEY" # Organization key is only required for creating new apps and other top-level endpoints
)
# Enter a context with an instance of the API client
with onesignal.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = default_api.DefaultApi(api_client)
app_id = "YOUR_APP_ID"
notification_id = "b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88"
try:
# View notification
api_response = api_instance.get_notification(app_id, notification_id)
pprint(api_response)
except onesignal.ApiException as e:
print("Exception when calling DefaultApi->get_notification: %s\n" % e)
print("Status Code: %s" % e.status)
print("Response Body: %s" % e.body)<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer authorization: rest_api_key
$config = onesignal\client\Configuration::getDefaultConfiguration()
->setRestApiKeyToken('YOUR_REST_API_KEY')
->setOrganizationApiKeyToken('YOUR_ORGANIZATION_API_KEY');
$apiInstance = new onesignal\client\Api\DefaultApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$app_id = 'YOUR_APP_ID'; // string
$notification_id = 'b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88'; // string
try {
$result = $apiInstance->getNotification($app_id, $notification_id);
print_r($result);
} catch (\onesignal\client\ApiException $e) {
echo 'Exception when calling DefaultApi->getNotification: ', $e->getMessage(), PHP_EOL;
echo 'Status Code: ', $e->getCode(), PHP_EOL;
// getErrorMessages() flattens any error-envelope shape to a string[];
// the raw body remains on getResponseBody().
echo 'Error Messages: ', implode(', ', $e->getErrorMessages()), PHP_EOL;
echo 'Response Body: ', $e->getResponseBody(), PHP_EOL;
} catch (\Exception $e) {
echo 'Exception when calling DefaultApi->getNotification: ', $e->getMessage(), PHP_EOL;
}package main
import (
"context"
"fmt"
"os"
"github.com/OneSignal/onesignal-go-api/v5"
)
func main() {
appId := "YOUR_APP_ID" // string |
notificationId := "b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88" // string |
configuration := onesignal.NewConfiguration()
apiClient := onesignal.NewAPIClient(configuration)
restAuth := context.WithValue(context.Background(), onesignal.RestApiKey, "YOUR_REST_API_KEY") // App REST API key required for most endpoints
resp, r, err := apiClient.DefaultApi.GetNotification(restAuth, notificationId).AppId(appId).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.GetNotification``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
if apiErr, ok := err.(*onesignal.GenericOpenAPIError); ok {
// ErrorMessages() flattens any error-envelope shape to a []string;
// the raw body remains on Body().
fmt.Fprintf(os.Stderr, "Error Messages: %v\n", apiErr.ErrorMessages())
fmt.Fprintf(os.Stderr, "Response Body: %s\n", apiErr.Body())
}
}
// response from `GetNotification`: NotificationWithMeta
fmt.Fprintf(os.Stdout, "Response from `DefaultApi.GetNotification`: %v\n", resp)
}require 'onesignal'
# setup authorization
OneSignal.configure do |config|
# Configure Bearer authorization: rest_api_key
config.rest_api_key = 'YOUR_REST_API_KEY'
end
api_instance = OneSignal::DefaultApi.new
app_id = 'YOUR_APP_ID' # String |
notification_id = 'b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88' # String |
begin
# View notification
result = api_instance.get_notification(app_id, notification_id)
p result
rescue OneSignal::ApiError => e
puts "Error when calling DefaultApi->get_notification: #{e}"
puts "Status Code: #{e.code}"
# `e.error_messages` flattens any error-envelope shape to an Array<String>;
# the raw body remains on `e.response_body`.
puts "Error Messages: #{e.error_messages}"
puts "Response Body: #{e.response_body}"
end// Import classes:
import com.onesignal.client.ApiClient;
import com.onesignal.client.ApiException;
import com.onesignal.client.Configuration;
import com.onesignal.client.auth.*;
import com.onesignal.client.model.*;
import com.onesignal.client.api.DefaultApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.onesignal.com");
// Configure HTTP bearer authorization: rest_api_key
HttpBearerAuth rest_api_key = (HttpBearerAuth) defaultClient.getAuthentication("rest_api_key");
rest_api_key.setBearerToken("YOUR_REST_API_KEY");
DefaultApi apiInstance = new DefaultApi(defaultClient);
String appId = "YOUR_APP_ID"; // String |
String notificationId = "b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88"; // String |
try {
NotificationWithMeta result = apiInstance.getNotification(appId, notificationId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling DefaultApi#getNotification");
System.err.println("Status code: " + e.getCode());
// getErrorMessages() flattens any error-envelope shape to a List<String>;
// the raw body remains on getResponseBody().
System.err.println("Error messages: " + e.getErrorMessages());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}using System;
using System.Collections.Generic;
using System.Diagnostics;
using OneSignalApi.Api;
using OneSignalApi.Client;
using OneSignalApi.Model;
namespace Example
{
public class GetNotificationExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://api.onesignal.com";
// Configure Bearer token for authorization: rest_api_key
config.AccessToken = "YOUR_REST_API_KEY";
var apiInstance = new DefaultApi(config);
var appId = "YOUR_APP_ID"; // string |
var notificationId = "b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88"; // string |
try
{
// View notification
NotificationWithMeta result = apiInstance.GetNotification(appId, notificationId);
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling DefaultApi.GetNotification: " + e.Message );
Debug.Print("Status Code: "+ e.ErrorCode);
// e.ErrorMessages flattens any error-envelope shape to an IReadOnlyList<string>;
// the raw body remains on e.ErrorContent.
Debug.Print("Error Messages: " + string.Join(", ", e.ErrorMessages));
Debug.Print("Response Body: " + e.ErrorContent);
Debug.Print(e.StackTrace);
}
}
}
}use onesignal_rust_api::apis::configuration::Configuration;
use onesignal_rust_api::apis::default_api;
#[tokio::main]
async fn main() {
let mut configuration = Configuration::new();
configuration.rest_api_key_token = Some("YOUR_REST_API_KEY".to_string());
// Realistic values are pulled from the spec's `example:` fields where present.
let app_id: &str = "YOUR_APP_ID";
let notification_id: &str = "b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88";
match default_api::get_notification(&configuration, app_id, notification_id).await {
Ok(resp) => println!("{:?}", resp),
Err(e @ onesignal_rust_api::apis::Error::ResponseError(_)) => {
// `e.error_messages()` flattens any error-envelope shape to a Vec<String>;
// the raw response remains on the ResponseError variant.
eprintln!("get_notification failed: {:?}", e.error_messages());
}
Err(e) => eprintln!("get_notification failed: {:?}", e),
}
}{
"app_id": "<string>",
"big_picture": "<string>",
"canceled": true,
"chrome_web_icon": "<string>",
"chrome_web_image": "<string>",
"name": "<string>",
"contents": {
"en": "<string>"
},
"converted": 123,
"data": {},
"delayed_option": "<string>",
"delivery_time_of_day": "<string>",
"remaining": 123,
"errored": 123,
"excluded_segments": "<array>",
"failed": 123,
"global_image": "<string>",
"headings": {},
"id": "<string>",
"included_segments": "<array>",
"ios_badgeCount": 123,
"ios_badgeType": "<string>",
"queued_at": 123,
"send_after": 123,
"completed_at": 123,
"successful": 123,
"received": 123,
"filters": {},
"template_id": "<string>",
"url": "<string>",
"web_url": "<string>",
"app_url": "<string>",
"platform_delivery_stats": {},
"throttle_rate_per_minute": 123,
"fcap_status": "<string>",
"outcomes": {},
"kind": "warmup",
"email_warm_up": {
"stages": [
{
"start": "<string>",
"end": "<string>",
"quota": 123,
"acked": true
}
],
"strategy": "recommended",
"status": "initializing",
"is_live": true
}
}{
"errors": [
"API rate limit exceeded"
]
}{
"errors": [
"Service temporarily unavailable"
]
}View message
View the details of a single message and the Outcomes associated with it.
curl --request GET \
--url 'https://api.onesignal.com/notifications/{message_id}?app_id={app_id}' \
--header 'Authorization: <authorization>'import Onesignal from '@onesignal/node-onesignal';
const configuration = Onesignal.createConfiguration({
restApiKey: 'YOUR_REST_API_KEY',
});
const apiInstance = new Onesignal.DefaultApi(configuration);
// string
const appId: string = "YOUR_APP_ID";
// string
const notificationId: string = "b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88";
try {
const response = await apiInstance.getNotification(appId, notificationId);
console.log(response);
} catch (e) {
if (e instanceof Onesignal.ApiException) {
// `e.errorMessages` flattens any error-envelope shape to a `string[]`;
// the raw parsed body remains on `e.body`.
console.error("getNotification failed: HTTP " + e.code, e.errorMessages);
} else {
throw e;
}
}import onesignal
from onesignal.api import default_api
from onesignal.models import *
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
# Some of the OneSignal endpoints require ORGANIZATION_API_KEY token for authorization, while others require REST_API_KEY.
# We recommend adding both of them in the configuration page so that you will not need to figure it out yourself.
configuration = onesignal.Configuration(
rest_api_key = "YOUR_REST_API_KEY", # App REST API key required for most endpoints
organization_api_key = "YOUR_ORGANIZATION_API_KEY" # Organization key is only required for creating new apps and other top-level endpoints
)
# Enter a context with an instance of the API client
with onesignal.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = default_api.DefaultApi(api_client)
app_id = "YOUR_APP_ID"
notification_id = "b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88"
try:
# View notification
api_response = api_instance.get_notification(app_id, notification_id)
pprint(api_response)
except onesignal.ApiException as e:
print("Exception when calling DefaultApi->get_notification: %s\n" % e)
print("Status Code: %s" % e.status)
print("Response Body: %s" % e.body)<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer authorization: rest_api_key
$config = onesignal\client\Configuration::getDefaultConfiguration()
->setRestApiKeyToken('YOUR_REST_API_KEY')
->setOrganizationApiKeyToken('YOUR_ORGANIZATION_API_KEY');
$apiInstance = new onesignal\client\Api\DefaultApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$app_id = 'YOUR_APP_ID'; // string
$notification_id = 'b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88'; // string
try {
$result = $apiInstance->getNotification($app_id, $notification_id);
print_r($result);
} catch (\onesignal\client\ApiException $e) {
echo 'Exception when calling DefaultApi->getNotification: ', $e->getMessage(), PHP_EOL;
echo 'Status Code: ', $e->getCode(), PHP_EOL;
// getErrorMessages() flattens any error-envelope shape to a string[];
// the raw body remains on getResponseBody().
echo 'Error Messages: ', implode(', ', $e->getErrorMessages()), PHP_EOL;
echo 'Response Body: ', $e->getResponseBody(), PHP_EOL;
} catch (\Exception $e) {
echo 'Exception when calling DefaultApi->getNotification: ', $e->getMessage(), PHP_EOL;
}package main
import (
"context"
"fmt"
"os"
"github.com/OneSignal/onesignal-go-api/v5"
)
func main() {
appId := "YOUR_APP_ID" // string |
notificationId := "b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88" // string |
configuration := onesignal.NewConfiguration()
apiClient := onesignal.NewAPIClient(configuration)
restAuth := context.WithValue(context.Background(), onesignal.RestApiKey, "YOUR_REST_API_KEY") // App REST API key required for most endpoints
resp, r, err := apiClient.DefaultApi.GetNotification(restAuth, notificationId).AppId(appId).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.GetNotification``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
if apiErr, ok := err.(*onesignal.GenericOpenAPIError); ok {
// ErrorMessages() flattens any error-envelope shape to a []string;
// the raw body remains on Body().
fmt.Fprintf(os.Stderr, "Error Messages: %v\n", apiErr.ErrorMessages())
fmt.Fprintf(os.Stderr, "Response Body: %s\n", apiErr.Body())
}
}
// response from `GetNotification`: NotificationWithMeta
fmt.Fprintf(os.Stdout, "Response from `DefaultApi.GetNotification`: %v\n", resp)
}require 'onesignal'
# setup authorization
OneSignal.configure do |config|
# Configure Bearer authorization: rest_api_key
config.rest_api_key = 'YOUR_REST_API_KEY'
end
api_instance = OneSignal::DefaultApi.new
app_id = 'YOUR_APP_ID' # String |
notification_id = 'b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88' # String |
begin
# View notification
result = api_instance.get_notification(app_id, notification_id)
p result
rescue OneSignal::ApiError => e
puts "Error when calling DefaultApi->get_notification: #{e}"
puts "Status Code: #{e.code}"
# `e.error_messages` flattens any error-envelope shape to an Array<String>;
# the raw body remains on `e.response_body`.
puts "Error Messages: #{e.error_messages}"
puts "Response Body: #{e.response_body}"
end// Import classes:
import com.onesignal.client.ApiClient;
import com.onesignal.client.ApiException;
import com.onesignal.client.Configuration;
import com.onesignal.client.auth.*;
import com.onesignal.client.model.*;
import com.onesignal.client.api.DefaultApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.onesignal.com");
// Configure HTTP bearer authorization: rest_api_key
HttpBearerAuth rest_api_key = (HttpBearerAuth) defaultClient.getAuthentication("rest_api_key");
rest_api_key.setBearerToken("YOUR_REST_API_KEY");
DefaultApi apiInstance = new DefaultApi(defaultClient);
String appId = "YOUR_APP_ID"; // String |
String notificationId = "b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88"; // String |
try {
NotificationWithMeta result = apiInstance.getNotification(appId, notificationId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling DefaultApi#getNotification");
System.err.println("Status code: " + e.getCode());
// getErrorMessages() flattens any error-envelope shape to a List<String>;
// the raw body remains on getResponseBody().
System.err.println("Error messages: " + e.getErrorMessages());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}using System;
using System.Collections.Generic;
using System.Diagnostics;
using OneSignalApi.Api;
using OneSignalApi.Client;
using OneSignalApi.Model;
namespace Example
{
public class GetNotificationExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://api.onesignal.com";
// Configure Bearer token for authorization: rest_api_key
config.AccessToken = "YOUR_REST_API_KEY";
var apiInstance = new DefaultApi(config);
var appId = "YOUR_APP_ID"; // string |
var notificationId = "b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88"; // string |
try
{
// View notification
NotificationWithMeta result = apiInstance.GetNotification(appId, notificationId);
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling DefaultApi.GetNotification: " + e.Message );
Debug.Print("Status Code: "+ e.ErrorCode);
// e.ErrorMessages flattens any error-envelope shape to an IReadOnlyList<string>;
// the raw body remains on e.ErrorContent.
Debug.Print("Error Messages: " + string.Join(", ", e.ErrorMessages));
Debug.Print("Response Body: " + e.ErrorContent);
Debug.Print(e.StackTrace);
}
}
}
}use onesignal_rust_api::apis::configuration::Configuration;
use onesignal_rust_api::apis::default_api;
#[tokio::main]
async fn main() {
let mut configuration = Configuration::new();
configuration.rest_api_key_token = Some("YOUR_REST_API_KEY".to_string());
// Realistic values are pulled from the spec's `example:` fields where present.
let app_id: &str = "YOUR_APP_ID";
let notification_id: &str = "b3a0c8bd-3a4c-4b22-9a73-3f1a8c2d1b88";
match default_api::get_notification(&configuration, app_id, notification_id).await {
Ok(resp) => println!("{:?}", resp),
Err(e @ onesignal_rust_api::apis::Error::ResponseError(_)) => {
// `e.error_messages()` flattens any error-envelope shape to a Vec<String>;
// the raw response remains on the ResponseError variant.
eprintln!("get_notification failed: {:?}", e.error_messages());
}
Err(e) => eprintln!("get_notification failed: {:?}", e),
}
}{
"app_id": "<string>",
"big_picture": "<string>",
"canceled": true,
"chrome_web_icon": "<string>",
"chrome_web_image": "<string>",
"name": "<string>",
"contents": {
"en": "<string>"
},
"converted": 123,
"data": {},
"delayed_option": "<string>",
"delivery_time_of_day": "<string>",
"remaining": 123,
"errored": 123,
"excluded_segments": "<array>",
"failed": 123,
"global_image": "<string>",
"headings": {},
"id": "<string>",
"included_segments": "<array>",
"ios_badgeCount": 123,
"ios_badgeType": "<string>",
"queued_at": 123,
"send_after": 123,
"completed_at": 123,
"successful": 123,
"received": 123,
"filters": {},
"template_id": "<string>",
"url": "<string>",
"web_url": "<string>",
"app_url": "<string>",
"platform_delivery_stats": {},
"throttle_rate_per_minute": 123,
"fcap_status": "<string>",
"outcomes": {},
"kind": "warmup",
"email_warm_up": {
"stages": [
{
"start": "<string>",
"end": "<string>",
"quota": 123,
"acked": true
}
],
"strategy": "recommended",
"status": "initializing",
"is_live": true
}
}{
"errors": [
"API rate limit exceeded"
]
}{
"errors": [
"Service temporarily unavailable"
]
}Overview
The View message API allows you to fetch data from a single push, email, or SMS message at a time. If you want to get multiple messages at a time, use the View messages API. In most cases, you will likely want to use Event Streams instead. Currently this API does not provide Journey-sent messages. See Journey analytics for details. Messages sent through the API are only accessible 30 days after creation; however, messages sent using the OneSignal dashboard are accessible for the app’s lifetime. See our Rate limits for details on how often you can pull your message data with this API.How to use this API
This API is most commonly used when sending Transactional messages to individual users. The response of our Create message API has anid which corresponds to the message_id used in this request. You can store this message_id on your server and (after giving your users some time to interact with the message) pull the data if desired.
For example, if you send a message targeting the include_aliases parameter, the response will include the aliases you set. If you send with the included_segments parameter, then the response will only provide the segments you set. When targeting segments or filters, you can use the Export audience activity CSV API to get the user event data.
To view outcome data for the message, you must include the outcome_name parameter with the name of the outcome you want to fetch, along with the accompanying aggregation type (.count or .sum), for example: os__click.count. For more information on outcome definitions, see View Outcomes.
Headers
Your App API key with prefix Key . See Keys & IDs.
Path Parameters
The identifier of the message in UUID v4 format. Get this id in the response of your Create Message API request, the View Messages API, and in your OneSignal dashboard Message Reports.
Query Parameters
Your OneSignal App ID in UUID v4 format. See Keys & IDs.
The name and aggregation type of the outcome(s) you want to fetch. Example: my_outcome.count or my_outcome.sum. For clicks, use os__click.count. For confirmed deliveries, use os__confirmed_delivery.count. For session duration, use os__session_duration.count.
Time range for the returned data. Available values: 1h (1 hour), 1d (1 day), 1mo (1 month)
1h, 1d, 1mo The platforms in which you want to pull the data represented as the device_type integer.
Attribution type for the outcomes.
direct, influenced, unattributed, total Response
200
Returns all message properties set. See the Push notifications, Email, and/or SMS Message Create APIs for all properties. Most commonly used properties for this endpoint are listed.
Your OneSignal App ID in UUID v4 format. See Keys & IDs.
The URL of the image set in the push notification.
Whether the message was canceled.
The URL of the icon set in the push notification.
The URL of the image set in the push notification.
An internal name you set to help organize and track messages. Not shown to recipients. Maximum 128 characters.
The main message body with language-specific values.
Show child attributes
Show child attributes
The number of times the push was clicked.
The JSON data set in the push notification if applicable.
The per-user delay option set for the message.
The delivery time of day set for the message if delayed_option is timezone.
The number of messages that have not been sent yet. If null, then the system is still processing the audience, try again later.
The number of times the message errored.
The segments excluded from the message if applicable.
The number of subscriptions reported unsubscribed for the message.
The URL of the image set in the push notification.
The title of the push notification.
The identifier of the message in UUID v4 format.
The segments included in the message if applicable.
The badge count set for the message if applicable.
The badge type set for the message if applicable.
Unix timestamp of when the message was created.
Unix timestamp of when the message delivery was scheduled to begin.
Unix timestamp of when the message delivery was completed. The delivery duration from start to finish can be calculated with completed_at - send_after.
The number of messages successfully delivered to the push, email, or SMS servers.
The number of messages that confirmed being received aka Confirmed Deliveries.
The filters set for the message if applicable.
The URL of the push notification.
The URL of the push notification for web push subscriptions.
The URL of the push notification for mobile subscriptions.
The successful, errored, failed, converted, received and frequency cap counts for each platform applicable.
The throttle rate of the push notification if applicable.
The frequency cap status of the push notification if applicable.
The id, value, and aggregation type of the outcome set in the request.
Present when this message is an Auto Warm Up campaign.
warmup The Auto Warm Up campaign's stage schedule, strategy, and live status. Present only when kind is warmup. See Auto Warm Up.
Show child attributes
Show child attributes
Was this page helpful?