Getting started with the Push API

The Localytics Push API currently exposes push as a single endpoint at https://messaging.localytics.com/v2/push/:app_id, which accepts the HTTP POST method.

POST /v2/push/:app_id

The payload is defined with a top level key of messages. Within messages is an array of one or more comma separated message objects.

You can send transactional messages to four types of user targets: audience_id, profile, customer_id, or broadcast. To locate the audience_id, export your audience files.

Target type Description
audience_id Must be an integer. Sends a push notification to a specific audience
customer_id Must be a string. Sends a push message to a specific customer ID
profile Sends a push message to a user who has specific profile attributes, defined as a JSON object
broadcast Must be the string "broadcast". Sends a broadcast push message to all of your app users

Here's an example of the general payload structure.

{ 
request_id: “1234-1234-1234-1234”, // Optional
campaign_key: null, // Required. Specify "null" if you don't want to use a campaign key.
target_type: "customer_id" // Replace with “customer_id” or "audience_id" or "profile" or
        "broadcast"
messages: [
            { 
              alert: "Mohana, your pizza is on its way!",
              target: "XYZ" // Replace with the customer ID, the audience ID, or { … profile rules… } 
              ios : {  // Optional block specific to iOS                             
                sound: "default.wav" // Optional                             
                badge: 1 // Optional                             
                extra: {} // Optional field for any custom key/value data that your app is configured to interpret                   
               }                         
               android : {  // Optional block specific to android                             
                  extra: {} // Optional field for any custom key/value data that your app is configured to interpret
                           }
          ]}

Here's an example of a payload targeting all users with specific profile information. You will need to specify the type of each profile attribute as a string, an integer, or a date. Dates should be formatted yyyy-mm-dd. You can use logical operators to join profile values based on the profile data type.

{   "profile": {
                criteria: [{         
                  key: "cats", // Profile key        
                  scope: "Organization"    // Profile scope: "LocalyticsApplication" or "Organization"
                  type: "string", // Data: "string", "int", or "date"  
                  op: "in", // Operator. Reference the table below for choices       
                  values: ["Ofelia", "Simba"] // Profile values        
                  }, 
                  <another criteria>],
              op: "and" // Outer operator for additional Profile attributes: "and" or "or           
              }
          }

Data type Operators available
string ['in']
int [ 'in', '<', '<=', '>', '>=', 'between' ]
date [ 'in', '<=', '>=', 'between' ]

Here's an example broadcast payload.

{ 
    request_id: “1234-1234-1234-1234”, // Optional  
    campaign_key: null, // Required, but specify null if you want no campaign key  
    target_type: "broadcast"
    messages: [                
        {               
          alert: “The Bruins win the Stanley Cup!"
        }
  ]
}

The following limits apply to data uploaded to the Localytics Push API:

Table 1. Top-level properties
Property Description
messages An array of message payloads which specify the push messages that should be delivered
message_attributes(optional) Optional, platform-specific attributes to be added to the message request body.
target_type "audience_id", "profile", or "broadcast"
app_id The Localytics application ID for the application sending the message
campaign_key Specifies the campaign identifier and creates a performance report in your account’s dashboard. Set as null if no performance report is needed.
request_id Specify to uniquely identify your request. Typically, you will send a GUID/UUID in this field. Localytics will handle automatically de-duping messages that are received for the same request_id.
Table 2. Message properties
Property Description
target The specific Customer ID, Audience ID, or profile rules you want to target. If your target is broadcast, pass "null" or do not specify a target.
alert The text of the push message to send
iOS Optional. Use to include iOS-specific information
android Optional. Use to include Android-specific information
sound (optional) iOS only. The name of the sound file to play. This file must be part of the app package
badge (optional) iOS only. The unread ‘badge’ number to show
extra (optional) Any additional key value data to send along to the app. Your app must be configured to understand how to parse the key/value information. This can be useful for things like deep-linking into particular parts of the app