iOS App Push REST API
This is the PushAlert REST API documentation for iOS App. Below, you will find the complete listing of all the available endpoints. As we add more endpoints, they will be documented here as well.
If you need help using the REST API or have any issues with its implementation, please send a mail to us at api@pushalert.co.
REST API Endpoints List
| Resource | Description |
|---|---|
| Sending Notifications | |
| POST https://api.pushalert.co/rest/v2/ios-app/send | Send notification to all subscribers, a single subscriber or a subset. You can also add custom attributes. |
| POST https://api.pushalert.co/rest/v2/ios-app/segment/$SEG_ID/send | Send notification to a segment with a specified Segment ID. |
| Notification Stats | |
| GET https://api.pushalert.co/rest/v2/ios-app/info/$ID | Get detailed stats about a particular notification including total subscribers attempted, notifications delivered, clicked and overall CTR. |
| Delete Scheduled | |
| POST https://api.pushalert.co/rest/v2/ios-app/delete/$ID | Delete a previously scheduled notification. Only notifications that have not yet been sent can be deleted. |
| Advanced Segmentation | |
| GET https://api.pushalert.co/rest/v2/ios-app/segments | Get all segments. |
| POST https://api.pushalert.co/rest/v2/ios-app/segment/create | Create a new segment programmatically. |
| POST https://api.pushalert.co/rest/v2/ios-app/segment/delete | Delete a segment programmatically. Requires the Segment ID to delete. |
| POST https://api.pushalert.co/rest/v2/ios-app/segment/$SEG_ID/add | Add subscriber(s) to a segment. |
| POST https://api.pushalert.co/rest/v2/ios-app/segment/$SEG_ID/remove | Remove subscriber(s) from a segment. |
| Custom Attributes | |
| POST https://api.pushalert.co/rest/v2/ios-app/attribute/put | Add attributes to a subscriber. |
| POST https://api.pushalert.co/rest/v2/ios-app/attribute/get | Get attributes of a subscriber. |
| Custom Events Tracking and Triggers | |
| POST https://api.pushalert.co/rest/v2/ios-app/track/event | Send automated notifications on triggered custom events |
| Automated Abandoned Cart Notifications | |
| POST https://api.pushalert.co/rest/v2/ios-app/abandonedCart | Schedule automated abandoned cart notification. |
| POST https://api.pushalert.co/rest/v2/ios-app/abandonedCart/delete | Delete abandoned cart notification on order completion or when cart is cleared. |
Sending Notifications
POST /rest/v2/ios-app/send
Using this endpoint you can send a notification to all subscribers. Subscribers can be targeted based on a particular Segment ID (endpoint) or using the Audience Creator ID. You can also personalize a notification with attributes.
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/send |
| Requires authentication? | Yes |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| title | String | Required This is the title of the notification. It's maximum length is restricted to 64 characters. |
| sub_title | String | Optional Adds a bit more context to the notification, shown below title. It's maximum length is restricted to 64 characters. |
| message | String | Required The message body, with a maximum length of 192 characters. |
| url | String | Required URL of the target page where you want subscribers to land after clicking on the notification. |
| sound | String | Optional Specifies the local custom sound file that should play when the notification arrives, instead of the default sound. |
| category_id | String | Optional Adds custom actions and behavior to this type of notification on iOS. |
| badge | String | Optional Set the badge value displayed at the top right corner of the app. Values: No Change (Default), Unset, Set To, Increase By. |
| badge_value | Integer | Optional If the "badge" value is "Set To" or "Increase By" then mention the value here, default is 0. |
| background_data | String | Optional Yes or No (Default). If set yes then no notification will be shown, you can use additional_data to perform action with in the app. |
| priority | String | Optional Control when and how the notification is displayed (iOS 15+). Values: Active (Default), Passive, Time Sensitive, Critical |
| relevance_score | String | Optional Controls the order in which this notification appears for users who receive it in their Scheduled Summary (iOS 15+). Values: 0, 0.25 (Default), 0.5, 0.75, 1.0 |
| large_image | String | Optional URL of the hero image (720x360 pixels recommended, 1.5 aspect ratio). The large image URL should be served over HTTPS. If not specified or not available over a secure connection, this will not be sent. |
| action1 | Array | Optional An array containing the title, URL, icon_resource (optional), icon_system (optional, possible value 0 or 1) to be used for the first CTA button in the notification. Both title and URL are required. The title can be of maximum 16 characters. If longer, the button will not be shown. Eg. '{"title":"Click here!", "url":"https://example.com", "icon_resource": "heart.fill", "icon_system":1}' (including quotes) |
| action2 | Array | Optional AAn array containing the title, URL, icon_resource (optional), icon_system (optional, possible value 0 or 1) to be used for the second CTA button in the notification. Both title and URL are required. The title can be of maximum 16 characters. If longer, the button will not be shown. Eg. '{"title":"Summer Sale!", "url":"https://example.com", "icon_resource": "tag.circle.fill", "icon_system":1}' (including quotes) |
| action3 | Array | Optional AAn array containing the title, URL, icon_resource (optional), icon_system (optional, possible value 0 or 1) to be used for the third CTA button in the notification. Both title and URL are required. The title can be of maximum 16 characters. If longer, the button will not be shown. Eg. '{"title":"Add to Cart", "url":"https://example.com", "icon_resource": "cart.circle.fill", "icon_system":1}' (including quotes) |
| action1_attr | Array | Optional An array containing the title and URL with attributes to be used for the first CTA button in the notification. Both title and URL are required. The title can be of maximum 16 characters. If longer, the button will not be shown. Please make sure that action1 (fallback) is also added or the button with attributes will not be shown. Eg. '{"title":"Apply {{coupon_code}}", "url":"https://example.com"}' (including quotes) |
| action2_attr | Array | Optional An array containing the title and URL with attributes to be used for the second CTA button in the notification. Both title and URL are required. The title can be of maximum 16 characters. If longer, the button will not be shown. Please make sure that action2 (fallback) is also added or the button with attributes will not be shown. Eg. '{"title":"Apply {{coupon_code}}", "url":"https://example.com"}' (including quotes) |
| action3_attr | Array | Optional An array containing the title and URL with attributes to be used for the third CTA button in the notification. Both title and URL are required. The title can be of maximum 16 characters. If longer, the button will not be shown. Please make sure that action3 (fallback) is also added or the button with attributes will not be shown. Eg. '{"title":"Apply {{coupon_code}}", "url":"https://example.com"}' (including quotes) |
| additional_data | String | Optional An additional data you want to send along with the notifcation in JSON-formatted string of key–value pairs. |
| audience_id | Integer | Optional ID of target audience, created via Audience Creator from Dashboard. Used for precise targeting. |
| subscriber | String | Optional To send a notification to a particular subscriber, use the subscriber ID with this endpoint. |
| subscribers | String | Optional To send a notification to a specific set of subscribers, you can include this parameter with an array of subscriber IDs in JSON format. Only one among subscriber or subscribers parameters can be used in a single endpoint call. |
| title_attr | String | Optional Notification title with custom attributes. This is an optional field, if attributes are not found, the title parameter will be used. |
| message_attr | String | Optional Notification message with custom attributes. If omitted or attributes not available then the message parameter will be used. |
| url_attr | String | Optional Notification URL with custom attributes. If omitted or attributes not available then the url parameter will be used. |
| expire_time | Integer | Optional Define the expiry time of a notification in seconds. By default it is set to 86400 seconds or 24 hours. |
| schedule_time | Integer | Optional Define the time when you want the notification to be sent with a 10-digit unix timestamp. |
| timezone_schedule | ISO Date Time | Optional Define the time when you want the notification to be sent in the subscriber's time zone. The time needs to be specified in ISO Date Time Format (e.g. 2024-01-30T11:00:00+05:30). The time should be provided in multiples of 30 minutes or the notification will be rejected. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| id | Integer | ID of the sent notification. |
Example: Send to All Subscribers
curl https://api.pushalert.co/rest/v2/ios-app/send \
-H "Authorization: api_key=<insert api key here>" \
-d "title=Your%20Title&message=Your%20Message&icon=http://yourwebsite.com/icon.png&url=https://yourwebsite.com"
<?php
$title = "Notification Title";
$message = "Notification Message";
$icon = "https://yourwebsite.com/icon.png";
$url = "https://yourwebsite.com/";
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/send";
//POST variables
$post_vars = array(
"icon" => $icon,
"title" => $title,
"message" => $message,
"url" => $url
);
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo $output["id"]; //Sent Notification ID
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
"id": 11
}
Example: Send to a Single Subscriber
curl https://api.pushalert.co/rest/v2/ios-app/send \
-H "Authorization: api_key=<insert api key here>" \
-d "title=Your%20Title&message=Your%20Message&icon=http://yourwebsite.com/icon.png&url=https://yourwebsite.com&subscriber=SUBSCRIBER_ID"
<?php
$title = "Notification Title";
$message = "Notification Message";
$icon = "https://yourwebsite.com/icon.png";
$url = "https://yourwebsite.com/";
$subscriber = "SUBSCRIBER_ID";
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/send";
//POST variables
$post_vars = array(
"icon" => $icon,
"title" => $title,
"message" => $message,
"url" => $url,
"subscriber" => $subscriber
);
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo $output["id"]; //Sent Notification ID
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
"id": 11
}
Example: Send to Multiple Subscribers
curl https://api.pushalert.co/rest/v2/ios-app/send \
-H "Authorization: api_key=<insert api key here>" \
-d "title=Your%20Title&message=Your%20Message&icon=http://yourwebsite.com/icon.png&url=https://yourwebsite.com&subscribers=[\"SUBSCRIBER_ID1\",\"SUBSCRIBER_ID2\"]"
<?php
$title = "Notification Title";
$message = "Notification Message";
$icon = "https://yourwebsite.com/icon.png";
$url = "https://yourwebsite.com/";
$subscribers = array(
"SUBSCRIBER_ID1",
"SUBSCRIBER_ID2"
);
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/send";
//POST variables
$post_vars = array(
"icon" => $icon,
"title" => $title,
"message" => $message,
"url" => $url,
"subscribers" => json_encode($subscribers)
);
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo $output["id"]; //Sent Notification ID
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
"id": 11
}
Notification with Custom Attributes
Using this API call you can personalize notifications with custom attributes. Since there can be some users without attribute values, you need to mention the default title and message as well. To use an attribute in title or message, use double curly braces i.e. {{attribute_name}}, {{email}}, {{name}} etc. For adding attributes to subscribers, you can refer to the JS API function addAttributes or use this REST API Endpoint.
Example
curl https://api.pushalert.co/rest/v2/ios-app/send \
-H "Authorization: api_key=<insert api key here>" \
-d "title=Your%20Title&message=Your%20Message&url=https://yourwebsite.com/&title_attr=Hi%20{{name}}&message=Your%20Custom%20Message%20for%20{{name}}&url_attr=https://yourwebsite.com/account/user/{{user_id}}&icon=http://yourwebsite.com/icon.png&subscribers=[\"SUBSCRIBER_ID1\",\"SUBSCRIBER_ID2\"]"
<?php
$title = "Notification Title";
$message = "Notification Message";
$title_attr = "Hi {{name}}";
$message_attr = "Your Custom Message for {{name}}";
$icon = "https://yourwebsite.com/icon.png";
$url = "https://yourwebsite.com/";
$url_attr = "https://yourwebsite.com/account/user/{{user_id}}";
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/send";
//POST variables
$post_vars = array(
"icon" => $icon,
"title" => $title,
"message" => $message,
"url" => $url,
"title_attr" => $title_attr,
"message_attr" => $message_attr,
"url_attr" => $url_attr
);
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo $output["id"]; //Sent Notification ID
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
"id": 11
}
POST /rest/v2/ios-app/segment/$SEG_ID/send
Send notification to a pre-defined segment of subscribers. You can create segments both from Dashboard -> Segmentation as well through the Create Segment call.
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/segment/$SEG_ID/send |
| Requires authentication? | Yes |
Method Parameters
| Parameter | Type | Description |
|---|---|---|
| $SEG_ID | Integer | Segment ID. |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| title | String | Required This is the title of the notification. It's maximum length is restricted to 64 characters. |
| message | String | Required The message body, with a maximum length of 192 characters. |
| url | String | Required URL of the target page where you want subscribers to land after clicking on the notification. |
| icon | String | Optional URL of the icon (192x192 pixels recommended). The icon URL should be served over HTTPS. If not specified or not available over a secure connection, the default icon from account would be used. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| id | Integer | ID of the sent notification. |
Example
curl https://api.pushalert.co/rest/v2/ios-app/segment/999/send \
-H "Authorization: api_key=<insert api key here>" \
-d "title=Your%20Title&message=Your%20Message&icon=http://yourwebsite.com/icon.png&url=https://yourwebsite.com"
<?php
$title = "Notification Title";
$message = "Notification Message";
$icon = "https://yourwebsite.com/icon.png";
$url = "https://yourwebsite.com/";
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/segment/999/send"; //place your segment id instead of 999
//POST variables
$post_vars = array(
"icon" => $icon,
"title" => $title,
"message" => $message,
"url" => $url
);
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo $output["id"]; //Sent Notification ID
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
"id": 11
}
Notification Stats
GET /rest/v2/ios-app/info/$ID
Get detailed stats about a particular notification including total subscibers attempted, total delivered, number of clicks and overall click-through-rate (CTR).
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/info/$ID |
| Requires authentication? | Yes |
Method Parameters
| Parameter | Type | Description |
|---|---|---|
| $ID | Integer | ID of the notification. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| Attempted | Integer | Total number of subscribers the notification was sent to. This is generally equal to the total number of subscribers of your website. However, if some subscribers have unsubscribed, or blocked notifications, this reflects the current active subscriber base. |
| Delivered | Integer | Total number of subscribers the notification was delivered to, this is not a static statistic. It keeps on updating as your subscribers come online and receive the notification. |
| Clicked | Integer | Number of clicks on the notification, again this is a dynamic stat and keeps on updating throughout the day. To see specific clicks on particular Action buttons, please check analytics on the Dashboard. |
| CTR | Double | Overall click-through-rate (CTR) till now, based on total delivery. |
Example
curl https://api.pushalert.co/rest/v2/ios-app/info/11 \
-H "Authorization: api_key=<insert api key here>"
<?php
$notfID = 11;
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/info/$notfID";
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo "Attempted: {$output["attempted"]}, Delivered: {$output["delivered"]}, Clicked: {$output["clicked"]} and CTR: {$output["ctr"]}%";
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
"attempted": 1540,
"delivered": 890,
"clicked": 179,
"ctr": "20.11%",
}
Delete Scheduled
POST /rest/v2/ios-app/delete/$ID
Delete a Scheduled Notification.
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/delete/$ID |
| Requires authentication? | Yes |
Method Parameters
| Parameter | Type | Description |
|---|---|---|
| $ID | Integer | ID of the notification. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| success | String | true/false. |
Example
curl https://api.pushalert.co/rest/v2/ios-app/delete/$ID \
-H "Authorization: api_key=<insert api key here>"
<?php
$ID = "NOTIFICATION_ID";
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/delete/$ID";
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$post_vars = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo "Scheduled Notification Deleted";
}
else {
//Others like bad request
}
?>
Output
{
"success": true,"msg": "Deleted successfully."
}
Advanced Segmentation
GET /rest/v2/ios-app/segments
Get the list of all segments with their IDs as well as total subscribers.
Resource Information
| Method | GET |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/segments |
| Requires authentication? | Yes |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| id | Integer | Segment ID. |
| name | String | Segment Name |
| subscribers | Integer | Total no. of subscribers in this segment. |
Example
curl https://api.pushalert.co/rest/v2/ios-app/segments \
-H "Authorization: api_key=<insert api key here>"
<?php
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/segments";
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
for($i=0; $i<count($output["segments"]); $i++){
echo "{$output["segments"][$i]["id"]} - {$output["segments"][$i]["name"]} - {$output["segments"][$i]["subscribers"]}\n";
}
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
"segments": {
{
"id":999,
"name": "PhoneNews",
"subscribers": 2345
},
{
"id":1021,
"name": "PoliticsNews",
"subscribers": 1636
},
{
"id":2452,
"name": "EntertainmentNews",
"subscribers": 7421
},
}
}
POST /rest/v2/ios-app/segment/create
Create a new segment programmatically. You can also create a segment from Dashboard > Segmentation.
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/segment/create |
| Requires authentication? | Yes |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| name | String | Required Segment name. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| id | Integer | ID of created segment. |
Example
curl https://api.pushalert.co/rest/v2/ios-app/segment/create \
-H "Authorization: api_key=<insert api key here>" \
-d "name=YOUR_SEGMENT_NAME"
<?php
$seg_name = "YOUR_SEGMENT_NAME";
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/segment/create";
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$post_vars = array(
"name" => $seg_name
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo $output["id"]; //Created Segment ID
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
"id": 8979
}
POST /rest/v2/ios-app/segment/delete
Delete a segment.
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/segment/delete |
| Requires authentication? | Yes |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| id | Integer | Required Segment ID. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| result | String | Success/Failure. |
Example
curl https://api.pushalert.co/rest/v2/ios-app/segment/delete \
-H "Authorization: api_key=<insert api key here>" \
-d "id=YOUR_SEGMENT_ID"
<?php
$seg_id = "YOUR_SEGMENT_ID";
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/segment/delete";
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$post_vars = array(
"id" => $seg_id
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo "Segment deleted";
}
else {
//Others like bad request
}
?>
Output
{
"success": true
}
POST /rest/v2/ios-app/segment/$SEG_ID/add
Add subscribers to a segment. Requires Segment ID which is available from Dashboard > Segmentation or through the REST API call for all segment details.
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/segment/$SEG_ID/add |
| Requires authentication? | Yes |
Method Parameters
| Parameter | Type | Description |
|---|---|---|
| $SEG_ID | Integer | Segment ID. |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| subscribers | String | Required Array of subscriber IDs in JSON form. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| result | String | Success/Failure. |
Example
curl https://api.pushalert.co/rest/v2/ios-app/segment/999/add \
-H "Authorization: api_key=<insert api key here>" \
-d "subscribers=[\"SUBSCRIBER_ID1\",\"SUBSCRIBER_ID2\"]"
<?php
$seg_id = "999"; //Your segment ID
$subscribers = array(
"SUBSCRIBER_ID1",
"SUBSCRIBER_ID2");
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/segment/$seg_id/add";
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$post_vars = array(
"subscribers" => json_encode($subscribers)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo "Subscribers added successfully";
}
else {
//Others like bad request
}
?>
Output
{
"success": true
}
POST /rest/v2/ios-app/segment/$SEG_ID/remove
Remove subscribers from a segment.
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/segment/$SEG_ID/remove |
| Requires authentication? | Yes |
Method Parameters
| Parameter | Type | Description |
|---|---|---|
| $SEG_ID | Integer | Segment ID. |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| subscribers | String | Required Array of subscriber IDs to be removed in JSON format. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| result | String | Success/Failure. |
Example
curl https://api.pushalert.co/rest/v2/ios-app/segment/999/remove \
-H "Authorization: api_key=<insert api key here>" \
-d "subscribers=[\"SUBSCRIBER_ID1\",\"SUBSCRIBER_ID2\"]"
<?php
$seg_id = "999"; //Your segment ID
$subscribers = array(
"SUBSCRIBER_ID1",
"SUBSCRIBER_ID2");
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/segment/$seg_id/remove";
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$post_vars = array(
"subscribers" => json_encode($subscribers)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo "Subscribers removed successfully";
}
else {
//Others like bad request
}
?>
Output
{
"success": true
}
Custom Attributes
POST /rest/v2/ios-app/attribute/put
Add custom attributes to a subscriber. These attributes can be used in personalizing the notifications and for targeting a particular set of subscribers.
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/attribute/put |
| Requires authentication? | Yes |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| subscriber | String | Required Subscribe ID of the target user. |
| attributes | String | Required JSON Array of attributes in form of key-value pair. Maximum individual key length is 32 characters and value length is 128 characters. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| result | String | Success/Failure. |
Example
curl https://api.pushalert.co/rest/v2/ios-app/attribute/put \
-H "Authorization: api_key=<insert api key here>" \
-d "attributes={'name':'John','gender':'Male'}&subscriber=SUBSCRIBER_ID"
<?php
$subscriber_id = "SUBSCRIBER_ID";
$attributes = array(
"name"=>"John",
"gender"=>"Male");
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/attribute/put";
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$post_vars = array(
"subscriber" => $subscriber_id,
"attributes" => json_encode(array($attr_name=>$attr_value))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo "Attributes added successfully";
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
}
POST /rest/v2/ios-app/attribute/get
Get custom attributes of a subscriber. These attributes can be used in personalizing the notifications and for targeting a particular sets of subscribers.
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/attribute/get |
| Requires authentication? | Yes |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| subscriber | String | Required Subscribe ID of the target user. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| result | String | Success/Failure. |
| attributes | String | If success, then key-value pairs of attributes. |
Example
curl https://api.pushalert.co/rest/v2/ios-app/attribute/get \
-H "Authorization: api_key=<insert api key here>" \
-d "subscriber=SUBSCRIBER_ID"
<?php
$subscriber_id = "SUBSCRIBER_ID";
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/attribute/get";
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$post_vars = array(
"subscriber" => $subscriber_id
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
print_r($output['attributes']);
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
}
Custom Events Tracking and Triggers
POST /rest/v2/ios-app/track/event
Using this endpoint you can trigger a notification in the back-end based on user interaction. It requires the subscription ID to be passed along with the event parameters.
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/track/event |
| Requires authentication? | Yes |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| subscriber | String | Required The subscriber ID for the subscriber that triggered the event. |
| eventCategory | String or Integer | Required The object or page that was interacted with (e.g. 'Video'). |
| eventAction | String or Integer | Required The type of interaction (e.g. 'play','pause','stopped'). |
| eventLabel | String or Integer | Optional Used for categorizing events. (e.g. 'Launch Campaign'). |
| eventValue | Integer | Optional A numeric value associated with the event (e.g. 2017). |
Example
curl https://api.pushalert.co/rest/v2/ios-app/track/event \
-H "Authorization: api_key=<insert api key here>" \
-d "subscriber=SUBSCRIBER_ID&eventCategory=video&eventAction=play&eventLabel=winter%20collection&eventValue=51"
<?php
$subscriber = "SUBSCRIBER_ID";
$eventCategory = "video";
$eventAction = "play";
$eventLabel = "winter collection";
$eventValue = "51";
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/track/event";
//POST variables
$post_vars = array(
"subscriber" => $subscriber,
"eventCategory" => $eventCategory,
"eventAction" => $eventAction,
"eventLabel" => $eventLabel,
"eventValue" => $eventValue,
);
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo "success";
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
}
Automated Abandoned Cart Notifications
POST /rest/v2/ios-app/abandonedCart
Using this endpoint you can schedule a notification when a cart is abandoned on your eCommerce store.
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/abandonedCart |
| Requires authentication? | Yes |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| subscriber | String | Required The subscriber ID for the subscriber that triggered the event. |
| extra_info | JSON (Key-value Pair) | Optional There can be two parameters sent in extra_info - first_name and total_items. You can choose to include either one of them or both. Where 'first_name' is the first or full name of the customer, while 'total_number' is the number of items in cart. For e.g. {'first_name':'Alex','total_items':2} This will be used to personalize the notification for your customer. |
Example
curl https://api.pushalert.co/rest/v2/ios-app/abandonedCart \
-H "Authorization: api_key=<insert api key here>" \
-d "subscriber=SUBSCRIBER_ID&extra_info={'first_name':'Alex','total_items':2}"
<?php
$subscriber = "SUBSCRIBER_ID";
$extra_info = array(
'first_name'=>'Alex',
'total_items'=>2
);
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/abandonedCart";
//POST variables
$post_vars = array(
"subscriber" => $subscriber,
"extra_info" => json_encode($extra_info),
);
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo "success";
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
}
POST /rest/v2/ios-app/abandonedCart/delete
Use this endpoint to delete a previously scheduled abandoned cart notification when the order is completed or all products are removed from cart.
Resource Information
| Method | POST |
|---|---|
| URL | https://api.pushalert.co/rest/v2/ios-app/abandonedCart/delete |
| Requires authentication? | Yes |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| subscriber | String | Required The subscriber ID for the subscriber that triggered the order completed event. |
Example
curl https://api.pushalert.co/rest/v2/ios-app/abandonedCart/delete \
-H "Authorization: api_key=<insert api key here>" \
-d "subscriber=SUBSCRIBER_ID"
<?php
$subscriber = "SUBSCRIBER_ID";
$apiKey = "YOUR_API_KEY";
$curlUrl = "https://api.pushalert.co/rest/v2/ios-app/abandonedCart/delete";
//POST variables
$post_vars = array(
"subscriber" => $subscriber
);
$headers = Array();
$headers[] = "Authorization: api_key=".$apiKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_vars));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$output = json_decode($result, true);
if($output["success"]) {
echo "success";
}
else {
//Others like bad request
}
?>
Output
{
"success": true,
}
Cyber Monday Sale