Create Campaign

Overview

The Create Campaign API lets you send messages to your users. You can specify the audience for your message in two ways. The first option is to target people based on user events and properties. The second option is to target people based on their user ids.

For example, you can use this API to send a price drop alert as a push notification to users who have viewed a certain product in the past week. If you have thousands of products and hundreds of thousands of users, this API lets you create a scalable and targeted way to notify your users of price drop alerts.

For more information on API request limit, refer to API Request Limit.

Create Campaign API - Target User Events & Properties

To create a campaign, you have to specify the message, channel, and people to target by their user events and properties. For example, a user event could be a purchase event and the user property could be their location.

This endpoint is limited to 1 request per second.

Base URL - Target User Events & Properties

Here is an example base URL from the account in the India region:
https://in1.api.clevertap.com/1/targets/create.json

Region

Refer Region for more details.

HTTP Method - Target User Events & Properties

POST

Headers

Refer Headers for more details.

Body Parameters - Target User Events & Properties

📘

Mobile Push Notification Parameters

The parameters in bold and marked with * provide additional functionality for creating a push campaign.

ParameterDescriptionRequired/OptionalTypeExample Value
nameThe name of your campaign shown in the CleverTap dashboard.RequiredString“My Campaign”
provider_nick_nameAllows you to specify which vendor/provider to use for your campaign. For each target_mode, you can have multiple providers integrated with CleverTap, and this parameter allows you to select which provider to use for the campaign. For example, you select target_mode = email and you have integrated both SendGrid and Amazon SNS with CleverTap to send emails. In this scenario, you can set provider_nick_name = SendGrid to send the campaign through SendGrid.OptionalString"Provider 1"
provider_group_nicknameAllows you to specify which provider group to use for your SMS campaign. You must use the name as added in your account settingsOptionalString"NewTestSMSProviderGroup"
content.sms.template_idTemplate ID (required for sending SMS to phone numbers of India)OptionalString
conversion_goal*Checks the end goal of the campaign for conversion tracking.OptionalObject"conversion_goal":{
"event_name": "Charged",
"filter_type":{
"event_property":[
{
"property_name":"Items|Book name",
"operator":"equals",
"property_value":"book name"
},
{
"property_name":"Items|Category",
"operator":"equals",
"property_value":"category"
},
{
"property_name":"Payment mode",
"operator":"equals",
"property_value":"UPI"
},
{
"property_name":"Amount",
"operator":"between",
"property_value":[3456,4567]
},
],
"first_time":"yes",
"last_time":"yes",
"time_of_day":[["21:00","23:00"]],
"day_of_week":[1,3],
"day_of_month":[1,3,16,31]
},
"conversion_time":"3D",
"revenue_property": "Amount"
},
conversion_goal.event_name*Name of the goal you want to track.Required if conversion_goal is providedString"event_name": "Charged",
conversion_goal.filter_type*Filters for provided event_name
The type of filter applied in conversion tracking. For example, first_time, time_of_day and so on.
Required if conversion_goal is providedObject"filter_type":{
"event_property":[
{
"property_name":"Items|Book name",
"operator":"equals",
"property_value":"book name"
}
],
"first_time":"yes",
"last_time":"yes",
"time_of_day":["21:00","23:00"],
"day_of_week":[1,3],
"day_of_month":[1,3,16,31]
},
conversion_goal. filter_type.
event_property*
Event Property for given event_name.OptionalList"event_property":[
{
"property_name":"Items|Book name",
"operator":"equals",
"property_value":"book name"
}
],
conversion_goal.filter_type.
event_property.property_name*
Name of the event_property.OptionalString"property_name":"Items|Book name",
conversion_goal.filter_type.
event_property.operator*
Operator required for property_name and property_value.
Valid values are:
equals
greater_than
greater_than_equals
less_than
less_than_equals
contains
does_not_contain
not_equals
exists (does not require property_value)
does_not_exist (does not require property_value)
between (requires 2 values in an array)
OptionalString"operator":"equals",
conversion_goal.filter_type.
event_property.property_value*
Provides value of the event_property.OptionalString"property_value":"book name"
conversion_goal.
filter_type.first_time*
Provides value of the first_time.
Valid values are:
"yes"
"no"
OptionalString"first_time":"yes",
conversion_goal.
filter_type.last_time*
Provides value of last_time.
Valid values:
"yes"
"no"
OptionalString"last_time":"yes",
conversion_goal.
filter_type.time_of_day*
Provides value of time_of_day.
Valid values:
[ [from_time, to_time] , [from_time, to_time] ]
time: "HH:MM"
OptionalList of lists"time_of_day":[["21:00","23:00"],["11:34","12:44"],["13:01","13:40"]],
conversion_goal.
filter_type.day_of_week*
Provides value of day_of_week.
Valid values:
[0 to 6] is [Sun to Sat]
OptionalList"day_of_week":[1,3,5]
conversion_goal.
filter_type.day_of_month*
Provides value of day_of_month.
Valid values:
[dates_of_month,....]
range: [1 to 31]
OptionalList"day_of_month":[1,3,16,31]
conversion_goal.conversion_time*Denotes the period that conversions are tracked for once the campaign is published.
Accepted values:
[30m, 1H, 2H, 4H, 8H, 12H, 1D, 2D, 3D, 5D, 1W, 2W, 1M, 2M, 5M]
where, m: minutes, H: hour, D: day, W: week, M:month
Required if conversion_goal is providedString"conversion_time":"3D",
conversion_goal.revenue_property*Denotes the revenue property for conversion goal event. For example, amount, currency, payment mode and so on.Required if conversion_goal is providedString"revenue_property": "Amount"
whereAllows you to filter target base on the user events and profile properties. Send an empty object ({}) to target your entire user base.RequiredObject"where": {
"event_name": "Charged",
"from": 20171001,
"to": 20171220,
"common_profile_properties": {
"profile_fields": [
{
"name": "Customer Type",
"operator":"equals",
"value": "Platinum"
}
]
}
}
where.event_nameAllows you to target users based on an event they perform.OptionalString"Charged"
where.fromStart of date range for event needed. Value specified in format YYYYMMDD.OptionalInt20171001
where.toEnd of date range for event needed. Value specified in format YYYYMMDD.OptionalInt20171220
where.profile_fieldsAllows you to target users based on the values of their profile fields.OptionalInt"common_profile_properties": {
"profile_fields": [
{
"name": "Customer Type",
"operator":"equals",
"value": "Platinum"
}
]
}
estimate_onlyIf this parameter is set to true, the request returns an estimated reach of the campaign, which is the number of users who receive the notification when you send it out. Setting this parameter to true does not create the campaign.OptionalBooleanFALSE
async_estimateThis allows setting of the estimate_only flag asynchronously. If this parameter is set to true, it returns a request ID that can be passed in the subsequent API call.OptionalBooleanBoolean
system_control_group_includeIf the system control group is enabled from the dashboard, you can choose to use the control group for API campaigns.OptionalBoolean
control_groupIf the custom control group is enabled from the dashboard, you can choose to use the control group for API campaignsOptionalString"control_group": {
"type": "custom"
"name": "name of control group"
}
control_groupYou can create a campaign control group via API by specifying the % as described on the leftOptionalInteger"control_group": {
"type": "campaign"
"percentage": 5
}
skip_estimateToggle this flag to true if you do not want to estimate the reach. This will lead to faster campaign delivery.OptionalBoolean"skip_estimate":true
send_to_all_devicesThe flag is set to false by default. If no value is specified, then the notification is sent to the last active device. Toggle this flag to true if you want to send notification to all active devices.OptionalBooleanFALSE
SegmentThe campaign is created only if the segment is processed. You do not need to mention "where" when using segment.OptionalIntegerupper_cap_for_target_segment*
upper_cap_for_target_segment*Do not send the campaign if the target segment exceeds the provided number of users.
By default all target segment users are selected.
Note: Do not provide this parameter if users_limit_overall is provided. (Minimum value is 100)
OptionalInteger"upper_cap_for_target_segment” : 500
users_limit_overall*Send only to the provided number of qualified users.
By default all target segment users are selected.
Note: Do not provide this parameter if upper_cap_for_target_segment is provided. (Minimum value is 100)
OptionalInteger“users_limit_overall” : 250
users_limit_per_run*Send only to the provided number of users per run.OptionalInteger"users_limit_per_run":199,
contentObject that defines the content for your message.RequiredString"content": {
"subject": "Welcome",
"body": "
Your HTML content for the email
",
"sender_name": "CleverTap"
}
content.titleTitle of your push notification message and web push message sent to the user.RequiredString“Hi”
content.bodyBody content of your push notification, web push, email and sms sent to the user.RequiredString“Have you seen the special offer?”
content.subjectSubject of your email sent to the user.RequiredString“Subject”
content.sender_nameSender name for your email sent to the user.RequiredString“Onboarding”
content.template_nameNamespace of the WhatsApp template you want to choose. This is available in settings for all the added WhatsApp templates.RequiredString"662da022_5583_406d_9c71_428d5e3164bb:ticket_update"
content.replacementsAdd values that replace the placeholders in the templates.RequiredString"replacements" : {
"1" : ,
"2" : ,
"3" :
}
content.attachmentsAllows you to attach images, videos, documents, and locations to your WhatsApp message based on the attachment defined in your template.RequiredString"attachments": {
"type": "Document",
"value": "http://www.refworld.org/pdfid/4d3025492.pdf"
}"
"attachments": {
"type": "Location",
"value":{
"latitude": "19.8876",
"longitude": "86.0945"
}
}
content.headerAllows you to attach images, videos, documents, and locations in your WhatsApp message based on the attachment type defined in your interactive template.OptionalObject
content.bodyDynamically replaces placeholder values in the body of interactive templates.RequiredObject
content.buttonAllows you to dynamically add a suffix to CTA buttons with dynamic URL.OptionalObject
wzrk_cidPlatform-specific key that is required to target users on devices running Android O - can be used to determine notification channel to which a given push notification must belong.
If a Notification ID is mandatory, then the channel ID is expected. An error occurs if a valid channel ID is not received.

Note: If the channel ID is not saved on the CleverTap dashboard, then the channel ID does not work in Create Campaign API.
RequiredString
wzrk_bcPlatform-specific key that can be used when targeting users on devices running Android O - can be used to determine the notification count shown on the app iconOptionalInt
wqrk_biPlatform-specific key that can be used while targeting users on devices running Android O - can be used to determine which icon should be used.
Accepted values:
app icon
notification icon
OptionalString
wzrk_actsAndroid Action Buttons
"l"= Action Title, "dl" = Deep link, "id" = Action id, "ico" = icon resource identifier
OptionalObjectwzrk_acts: "[{"l":"Action-1","dl":"","id":"01","ico":""},
{"l":"Action-2","dl":"","id":"02","ico":""},
{"l":"Action-3","dl":"","id":"03","ico":""}]
platform_specificThe platform-specific details for Push and Web Push notificationOptionalString
background_imageThe parameter to render images in the push notification for Android.OptionalString"background_image": "http://example.jpg"
notification_tray_priority*This field helps to set priority for the notification tray in android.
Valid values are:
"max"
"high"
"default"
OptionalString"notification_tray_priority": "max"
delivery_priority*This field helps to set delivery priority of notification in android.
Valid values are:
"normal"
"high"
OptionalString"delivery_priority": "high"
android_collapse*User can send any string value or number to identify collapsible notification in android.OptionalString/Integer"android_collapse" : "any message or number".
ios_collapse*User can send any string value or number to identify collapsible notification in iOS.OptionalString/Integer"ios_collapse" : "any message or number"
summary*You can provide summary
about the notification you are sending to user valid only in Android.
OptionalString"summary": "Enter summary here"
subtitle*Subtitle for your notification.OptionalString"subtitle": "Enter subtitle"
large_icon*Allows you to put company logo in the notification.OptionalString (URL)"large_icon": "logo.com"
Custom KVs*You can specify it in the platform specific object.Optionalkey-value pair"platform_specific": {
"ios": {
"Key": "Value_ios"
},
"android": {
"Key": "Value_android",
}
}
mutable-contentTo raise Notification viewed event for Push notifications, raise the flag to "true" in the platform_specific: iOS section of the request payload.OptionalBoolean
respect_frequency_capsSet to false if you want to override frequency caps and dwell time.OptionalBooleanTRUE
respect_throttleToggle this flag to true if you want to enable throttle limits for the campaign.OptionalBoolean"respect_throttle":true
ttlThis allows setting of time to live for push notifications for android and iOS.
The subkeys for ttl are
“ttl_type” - with input as “relative” [default] and ”absolute”
“value” -For relative ttl, the input is an integer in minutes.
For absolute ttl, the input should be an integer in the yyyyMMddHHmm format.

More information is available here.
OptionalDepends on subkey
ttl_type: string
value: Long
For Absolute TTL -
"ttl" : {
"ttl_type": "absolute",
"value" : 202207200000
},
For Relative TTL -
"ttl" : {
"ttl_type": "relative",
"value" : 2880
},
whenWhen you want to send out the messages. Valid inputs are now (to send the notification right away) or YYYYMMDD HH:MM to schedule the messages for a specific date and time in the future.RequiredString"now"
when*Allows you to set Date, time and Delivery preferences of the message.RequiredObject"when":{
"type":"later",
"delivery_date_time":["20220420 13:00", "20220421 14:00"],
"delivery_timezone":"user",
"user_timezone_wrap_around":true,
"dnd":{
"message_state":1,
"dnd_timezone":"user",
"dnd_info":{
"2": ["21:00","06:00"],
"4": ["23:56","04:34"]
}
},
"campaign_cutoff": "14:20"
}
when.type*Valid inputs are "now" or "later" (to send it at a later time) or "recurring".RequiredString"type" : "later"
when.delivery_date_time*["YYYYMMDD HH:MM"] to schedule the messages for a specific date and time in the future in increasing date order only.Required if when.type = "later"String"delivery_date_time":["20220420 13:00", "20220421 14:00"]
when.repeats_every*Number of days or weeks to be repeated on.Required if when.type = "recurring"Integer"repeats_every" : 2
when.repeat_type*Can be "day" or "week"
Note: Repeat by month is not implemented.
Required if when.type = "recurring"String"repeat_type" : "week"
when.start_time*"YYYYMMDD HH:MM" (Cannot provide past date).Required if when.type = "recurring"String"start_time" : "20220415 12:05",
when.end_by_date*"YYYYMMDD", End the campaign after provided date.
Note: Either end_by_date or end_by_occurrences can be provided.
Optional
Note: This is applicable only if when.type = "recurring"
String"end_by_date" : "20220420"
when.end_by_occurrences*End the campaign after provided number of occurrences.
Note: Either end_by_date or end_by_occurrences can be provided.
Note: This is applicable optional only if when.type = "recurring"Integer"end_by_occurrences" : 8
when.repeat_on_days_of_week*Days of week represented as [1,7] for [Sun to Saturday].Required if when.type = "recurring" and repeat_type = "week"List"repeat_on_days_of_week" : [1,3,5]
when.delivery_timezone*To adapt delivery times to user or account's timezone.OptionalBoolean"delivery_timezone":"user"
OR
"delivery_timezone":"account"
when.user_timezone_wrap_around*If the campaign start time is after a user's local time, then drop the campaign (user_timezone_wrap_around : false) or deliver the campaign the next day (user_timezone_wrap_around : true).OptionalBoolean"user_timezone_wrap_around":true
dnd*Do Not DisturbOptionalObject"dnd":{
"message_state":"delay",
"dnd_timezone":"user",
"dnd_info":{
"2": ["21:00","06:00"],
"4": ["23:56","04:34"]
}
},
dnd.message_state*The following are the values for parameter:
"delay": Delay message send until the end of DND.
"discard" : Discard messages scheduled during DND.
Note: By default, messages scheduled during DND are discarded (if message_state is not provided).
Required if DND applicable.Integer"message_state":"discard"
dnd.dnd_info*Provides the following information:
Format: [Start Time in minutes, End Time in minutes]
Day: Denotes the days of week on which the DND is applicable.
Format: [Sun to Sat] is [1 to 7] value
Required if DND applicableObject"dnd_info":{
"2": ["21:00","06:00"],
"4": ["23:56","04:34"]
}
(2 for monday)
dnd.dnd_timezone*Timezone for DND (user_timezone or account_timezone)Required if DND applicableString"dnd_timezone":"user",
OR
"dnd_timezone":"account",
when.campaign_cutoff*Stop sending messages from this campaign after a particular time (Campaign Cutoff)
Format : "HH:MM"
OptionalString (Time)"campaign_cutoff": "12:20"

Example Payloads :

{
    "name": "My Webpush API campaign",
    "estimate_only": true,
    "target_mode":"webpush",
    "where": {
        "event_name": "Charged",
        "from": 20171001,
        "to": 20171220, 
      "common_profile_properties": {
            "profile_fields": [
                {
                    "name": "Customer Type",
                    "operator":"equals",
                    "value": "Platinum"
                }
            ]
        }
    },
    "respect_frequency_caps": false,
    "content": {
        "title": "Hi!",
        "body": "How are you doing today?",
       "platform_specific": {
            "safari": {
                "deep_link": "https://www.google.com",
                "ttl":10
            },
            "chrome": {
              "image": "https://www.exampleImage.com",
              "icon":"https://www.exampleIcon.com",
              "deep_link": "http://www.example.com",
              "ttl":10,
              "require_interaction":true,
              "cta_title1":"title",
              "cta_link1":"http://www.example2.com",
              "cta_iconlink1":"https://www.exampleIcon2.com"
            },
            "firefox": {
                "icon":"https://www.exampleIcon.com",
                "deep_link": "https://www.google.com",
                "ttl":10
            },
            "kaios": {
              "icon":"https://www.exampleIcon.com",
              "ttl":10,
              "kaiosKV": {
                "key1": "value1",
                "key2": "value2"
              }
           }
        }
    },
    "when": "now"
}
{
    "name": "My API Campaign",
    "estimate_only": true,
    "target_mode":"push",
    "conversion_goal":{
      "event_name": "Charged",
      "filter_type":{
          "event_property":[
              {
                   "property_name":"Items|Book name",
                   "operator":"equals",
                   "property_value":"book name"
               },
               {
                   "property_name":"Amount",
                   "operator":"equals",
                   "property_value":3456
               },
               {
                   "property_name":"Currency",
                   "operator":"equals",
                   "property_value":"USD"
               }
           ],
           "first_time":"yes",
           "last_time":"yes",
           "time_of_day":[["21:00","23:00"],["11:34","12:44"],["13:01","13:40"]],
           "day_of_week":[1,7],
           "day_of_month":[1,3,16,31]
      },
      "conversion_time":"1D",
      "revenue_property": "Amount"
   },
    "where": {
        "event_name": "App Launched",
        "from": 20150101,
        "to": 20150303,
        "common_profile_properties": {
            "profile_fields": [
                {
                    "name": "Customer Type",
                    "operator":"equals",
                    "value": "Platinum"
                }
            ]
        }
    },
    "respect_frequency_caps": false,
    "ttl": {
             "ttl_type": "absolute",
                "value" : 202207200000 },
    "content": {
        "title": "Hi!",
        "body": "How are you doing today?",
        "platform_specific": {
            "ios": {
                "mutable-content": "true", 
                "deep_link": "example.com",
                "sound_file": "example.caf",
                "category": "application category//Books",
                "badge_count": 1,
                "Key": "Value_ios"
            },
            "android": {
                "wzrk_cid": "Marketing",
                "background_image": "http://example.jpg",
                "default_sound": true,
                "deep_link": "example.com",
                "large_icon": "http://example.png",
                "Key": "Value_android",
                },
            }
        }
    },
    "devices": [
        "android",
        "ios"
    ],
    "users_limit_overall": 101,
  "when":{
      "type":"now",
      "delivery_timezone":"user",
      "user_timezone_wrap_around":true,
      "dnd":{
          "message_state":"delay",
          "dnd_timezone":"user",
          "dnd_info":{
              "2": ["21:00","06:00"],
              "4": ["23:56","04:34"],
              "5": ["09:00","09:13"]
       }
      },
      "campaign_cutoff": "08:00"
  }
}
{
    "name": "My Email API campaign",
    "estimate_only": true,
    "target_mode":"email",
    "where": {
        "event_name": "Charged",
        "from": 20171001,
        "to": 20171220, 
      "common_profile_properties": {
            "profile_fields": [
                {
                    "name": "Customer Type",
                    "operator":"equals",
                    "value": "Platinum"
                }
            ]
        }
    },
    "respect_frequency_caps": false,
    "content": {
        "subject": "Welcome",
        "body": "<div>Your HTML content for the email</div>",
        "sender_name": "CleverTap"
    },
    "when": "now"
}
{
    "name": "My Sms API campaign",
    "estimate_only": true,
    "target_mode":"sms",
    "where": {
        "event_name": "Charged",
        "from": 20171001,
        "to": 20171220, 
      "common_profile_properties": {
            "profile_fields": [
                {
                    "name": "Customer Type",
                    "operator":"equals",
                    "value": "Platinum"
                }
            ]
        }
    },
    "respect_frequency_caps": false,
    "content": {
        "body": "Sms body"
    },
    "when": "now"
}
{
    "name": "My Webhook Campaign",
    "estimate_only": true,
    "target_mode":"webhook",
    "where": {
        "event_name": "Charged",
        "from": 20190101,
        "to": 20191220
    },
    "respect_frequency_caps": false,
    "webhook_endpoint_name":"Recommendation Endpoint",
    "webhook_fields":["profile-attributes","tokens","identities"],
    "webhook_key_value" : {
        "k1":"v1",
        "k2":"v2"
    },
    "when": "now"
}
{    
    "name": "api simple test",
    "estimate_only": false,
    "target_mode":"notificationinbox",
    "where": {
        "event_name": "Charged",
        "from": 20150101,
        "to": 20150303
    },
    "respect_frequency_caps": false,
    "send_to_all_devices": true,
    "template_type":"simple", // mandatory
    "content": [
        {
            "message":{
                "text":"MessageText"
            },
            "title":{
                "text":"titleText"
            },
            "action":{    
                "url":{
                    "android":{
                        "text":"andmurl"    
                    },
                    "ios":{
                        "text":"iosmurl"    
                    }
                },
                "links":[
                    {
                        "type":"copy",
                        "text":"linkText",
                        "copyText":{
                            "text":"copyText"
                        }
                    },
                    {
                        "type":"url",
                        "text":"linkText",
                        "url":{
                            "android":{
                                "text":"andLinkurl"    
                            },
                            "ios":{
                                "text":"iosLinkurl"
                            }
                        }    
                    }
                    ]
            },
            "media":{
                "content_type":"image/jpeg",
                "url":"example.com"
            }
        }
        ],
    "time_to_live":50,    
    "tags":[
        "abc",
        "bcd"
        ],
    "devices": [
        "ios",
        "android"
    ],
    "when": "now"
}
{    
    "name": "api simple test",
    "estimate_only": false,
    "target_mode":"notificationinbox",
    "where": {
        "event_name": "Charged",
        "from": 20150101,
        "to": 20150303
    },
    "respect_frequency_caps": false,
    "send_to_all_devices": true,
    "template_type":"carousel",
    "orientation": "p",
    "content": [
        {
            "message":{
                "text":"Message1"
            },
            "title":{
                "text":"title1"
            },
            "action":{
                "url":{
                    "android":{
                        "text":"andurl1"
                    },
                    "ios":{
                        "text":"iosmurl1"    
                    }
                }
            },
            "media":{
                "content_type":"image/jpg",
                "url":"example.com"
            }
        },
        {
            "message":{
                "text":"Message2"
            },
            "title":{
                "text":"title2"
            },
            "action":{
                "url":{
                    "android":{
                        "text":"andurl2"
                    },
                    "ios":{
                        "text":"iosmurl2"    
                    }
                }
            },
            "media":{
                "content_type":"image/jpg",
                "url":"example.com"
            }
        }
        ],
    "time_to_live":8,
    "tags":[
        "abc",
        "bcd"
        ],
    "devices": [
        "ios",
        "android"
    ],
    "when": "now"
}


// media & template_type is mandatory
{    
    "name": "api simple test",
    "estimate_only": false,
    "target_mode":"notificationinbox",
    "where": {
        "event_name": "Charged",
        "from": 20150101,
        "to": 20150303
    },
    "respect_frequency_caps": false,
    "send_to_all_devices": true,
    "template_type":"carousel-image",
    "orientation": "p",
    "content": [
        {
            "action":{
                "url":{
                    "android":{
                        "text":"andurl1"
                    },
                    "ios":{
                        "text":"iosmurl1"    
                    }
                }
            },
            "media":{
                "content_type":"image/jpg",
                "url":"example.com"
            }
        },
        {
            "message":{
                "text":"Message2"
            },
            "title":{
                "text":"title2"
            },
            "action":{
                "url":{
                    "android":{
                        "text":"andurl2"
                    },
                    "ios":{
                        "text":"iosmurl2"    
                    }
                }
            },
            "media":{
                "content_type":"image/jpg",
                "url":"example.com"
            }
        }
        ],
    "time_to_live":8,
    "tags":[
        "abc",
        "bcd"
        ],
    "devices": [
        "ios",
        "android"
    ],
    "when": "now"
}


// media & template_type is mandatory
{    
    "name": "api app inbox icon",
    "estimate_only": false,
    "target_mode":"notificationinbox",
    "where": {
        "event_name": "App Launched",
        "from": 20190101,
        "to": 20190418
    },
    "respect_frequency_caps": false,
    "send_to_all_devices": true,  
    "template_type":"message-icon",
    "orientation": "p",
    "content": [
        {
            "message":{
                "text":"MessageTexticon"
            },
            "title":{
                "text":"titleTextIcon"
            },
            "action":{
                "url":{
                    "android":{
                        "text":"andmurl"
                    },
                    "ios":{
                        "text":"iosmurl"    
                    }
                },
                "links":[
                    {
                        "type":"url",
                        "text":"linktextIcon",
                        "color":"#000000",
                        "bg":"#ffff",
                        "url":{
                            "android":{
                                "text":"andlurl"
                            },
                            "ios":{
                                "text":"ioslurl"
                            }
                        }
                    }
                    ]
            },
            "media":{
                "content_type":"image/jpg",
                "url":"https://s3.amazonaws.com/ct-demo-images/landscape-2.jpg"
            },
            "icon":{
                "content_type":"image/jpg",
                "url":"https://s3.amazonaws.com/ct-demo-images/landscape-2.jpg"
            }
        }
        ],
    "time_to_live":50,    
   
    "devices": [
        "ios",
        "android"
    ],
    "when": "now"
}

// template_type is mandatory
{
    "name": "Standard Whatsapp campaign",
    "estimate_only": false,
    "target_mode": "whatsapp",
    "where": {
        "event_name": "Added To Cart",
        "from": 20200610,
        "to": 20200619,
        "common_profile_properties": {
            "profile_fields": [
                {
                    "name": "Fruit",
                    "operator":"equals",
                    "value": "Apple"
                }
            ]
        }
    },
    "respect_frequency_caps": false,
    
    "system_control_group_include": false,
    "content": {
        "template_name": "662da022_5583_406d_9c71_428d5e3164bb:ticket_update",
        "replacements": {
            "1": "buddy",
            "2":"Где ты се, Pад познакомиться."
            
        },
        "attachments": {
            "type": "Document",
            "value": "http://www.refworld.org/pdfid/4d3025492.pdf"
        }
    },
    "when": "now"
}

Following is the JSON payload for the iOS Carousel Push template:

{
    "name": "My API Campaign",
    "estimate_only": true,
    "target_mode":"push",
    "where": {
        "event_name": "App Launched",
        "from": 20150101,
        "to": 20150303,
        "common_profile_properties": {
            "profile_fields": [
                {
                    "name": "Customer Type",
                    "operator":"equals",
                    "value": "Platinum"
                }
            ]
        }
    },
    "respect_frequency_caps": false,
    "content": {
        "title": "Hi!",
        "body": "How are you doing today?",
        "platform_specific": {
            "ios": {
                "mutable-content": "true", 
                "deep_link": "example.com",
                "sound_file": "example.caf",
                "category": "CTNotification",
                "badge_count": 1,
                "ct_ContentSlider": {
        "orientation": "landscape", // landscape assumes 16:9 images, remove to display default square/portrait images
        "showsPaging": true, // optional to display UIPageControl
        "autoPlay": true, // optional to auto play the slideshow
        "autoDismiss": true, // optional to auto dismiss the notification on item actionUrl launch
        "items":[
            {
                "caption": "caption one",
                "subcaption": "subcaption one",
                "imageUrl": "https://s3.amazonaws.com/ct-demo-images/landscape-1.jpg",
                "actionUrl": "com.clevertap.ctcontent.example://item/one"
            }, 
            {
                "caption": "caption two", 
                "subcaption": "subcaption two", 
                "imageUrl": "https://s3.amazonaws.com/ct-demo-images/landscape-2.jpg",
                "actionUrl": "com.clevertap.ctcontent.example://item/two"
            }
       ]
   }
            }
        }
    },
    "devices": [
        "ios"
    ],
    "when": "now"
}

Following is the JSON payload for WhatsApp interactive message templates:

{
    "name": "Interactive Whatsapp Campaign",
    "estimate_only": false,
    "target_mode": "whatsapp",
    "where": {
        "event_name": "Added To Cart",
        "from": 20200610,
        "to": 20200619,
        "common_profile_properties": {
            "profile_fields": [
                {
                    "name": "Fruit",
                    "operator":"equals",
                    "value": "Apple"
                }
            ]
        }
    },
    "respect_frequency_caps": false,
    
    "system_control_group_include": false,
    "content": {
        "template_name": "662da022_5583_406d_9c71_428d5e3164bb:ticket_update",
        "header": {
            "type": "image",  
            "media": {
                "url": "https://googl.com/a.jpg/"
            }
        },
        "body": {
            "replacements": []
        }     
      },
    "when": "now"
}
{
    "name": "Interactive Whatsapp Campaign",
    "estimate_only": false,
    "target_mode": "whatsapp",
    "where": {
        "event_name": "Added To Cart",
        "from": 20200610,
        "to": 20200619,
        "common_profile_properties": {
            "profile_fields": [
                {
                    "name": "Fruit",
                    "operator":"equals",
                    "value": "Apple"
                }
            ]
        }
    },
    "respect_frequency_caps": false,
    
    "system_control_group_include": false,
    "content": {
        "template_name": "662da022_5583_406d_9c71_428d5e3164bb:ticket_update",
        
        "header": {
            "type": "text",
            "replacements": ["Dummy User", "22/10/2021"]
        },
        "body": {
            "replacements": ["dummy"]
        }
       
      },
    "when": "now"
}
{
    "name": "Interactive Whatsapp Campaign",
    "estimate_only": false,
    "target_mode": "whatsapp",
    "where": {
        "event_name": "Added To Cart",
        "from": 20200610,
        "to": 20200619,
        "common_profile_properties": {
            "profile_fields": [
                {
                    "name": "Fruit",
                    "operator":"equals",
                    "value": "Apple"
                }
            ]
        }
    },
    "respect_frequency_caps": false,
    
    "system_control_group_include": false,
    "content": {
        "template_name": "662da022_5583_406d_9c71_428d5e3164bb:ticket_update",
        "header": {
            "type": "document",   
            "media": {
                "url": "https://googl.com/a.pdf"
            }
        },
        "body": {
            "replacements": ["Dummy User", "22/10/2021"]
        }     
      },
    "when": "now"
}
{
    "name": "Interactive Whatsapp Campaign",
    "estimate_only": false,
    "target_mode": "whatsapp",
    "where": {
        "event_name": "Added To Cart",
        "from": 20200610,
        "to": 20200619,
        "common_profile_properties": {
            "profile_fields": [
                {
                    "name": "Fruit",
                    "operator":"equals",
                    "value": "Apple"
                }
            ]
        }
    },
    "respect_frequency_caps": false,
    
    "system_control_group_include": false,
    "content": {
        "template_name": "662da022_5583_406d_9c71_428d5e3164bb:ticket_update",
        "header": {
            "type": "video",
            "media": {
                "url": "https://googl.com/a.mp4"
            }
        },
        "body": {
            "replacements": ["Dummy User", "22/10/2021"]
        }     
      },
    "when": "now"
}
{
    "name": "Interactive Whatsapp Campaign",
    "estimate_only": false,
    "target_mode": "whatsapp",
    "where": {
        "event_name": "Added To Cart",
        "from": 20200610,
        "to": 20200619,
        "common_profile_properties": {
            "profile_fields": [
                {
                    "name": "Fruit",
                    "operator":"equals",
                    "value": "Apple"
                }
            ]
        }
    },
    "respect_frequency_caps": false,
    
    "system_control_group_include": false,
    "content": {
        "template_name": "662da022_5583_406d_9c71_428d5e3164bb:ticket_update",
        "header": {
            "type": "location",
            "media": {
                "latitiude": 32.123,
                "longitude": 123.32,
                "name": "facebook ",
                "address": "facebook "
            }
        },
        "body": {
            "replacements": ["Dummy User", "22/10/2021"]
        }     
      },
    "when": "now"
}
{
   "name":"Interactive Whatsapp Campaign",
   "estimate_only":false,
   "target_mode":"whatsapp",
   "where":{
      "event_name":"Added To Cart",
      "from":20200610,
      "to":20200619,
      "common_profile_properties":{
         "profile_fields":[
            {
               "name":"Fruit",
               "operator":"equals",
               "value":"Apple"
            }
         ]
      }
   },
   "respect_frequency_caps":false,
   "system_control_group_include":false,
   "content":{
      "template_name":"662da022_5583_406d_9c71_428d5e3164bb:ticket_update",
      "header":{
         "type":"location",
         "media":{
            "latitiude":32.123,
            "longitude":123.32,
            "name":"facebook ",
            "address":"facebook "
         }
      },
      "body":{
         "replacements":[
            "Dummy User",
            "22/10/2021"
         ]
      },
      "buttons":[
         {
            "replacements":[
             "suffix"  
            ]
         }
      ]
   },
   "when":"now"
}

Example Request - Target User Events & Properties

Here is an example cURL request to the Create Campaign API showing the headers needed to authenticate the request from the account in the India region:

curl -X POST -d ' {"name": "My Sms API campaign","estimate_only": true,"target_mode":"sms", "where":{"event_name":"Charged","from":20171001,"to":20171220,"common_profile_properties":{"profile_fields": [ {"name": "Customer Type","operator":"equals","value": "Platinum"}]}},"respect_frequency_caps": false,"content": { "body": "Sms body"},"when": "now"}' \
"https://in1.api.clevertap.com/1/targets/create.json" \
-H "X-CleverTap-Account-Id: ACCOUNT_ID" \
-H "X-CleverTap-Passcode: PASSCODE" \
-H "Content-Type: application/json"
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://in1.api.clevertap.com/1/targets/create.json ")
request = Net::HTTP::Post.new(uri)
request.content_type = "application/json"
request["X-Clevertap-Account-Id"] = "ACCOUNT_ID"
request["X-Clevertap-Passcode"] = "PASSCODE"
request.body = JSON.dump({
  "name" => "My Sms API campaign",
  "estimate_only" => true,
  "target_mode" => "sms",
  "where" => {
    "event_name" => "Charged",
    "from" => 20171001,
    "to" => 20171220,
    "common_profile_properties" => {
      "profile_fields" => [
        {
          "name" => "Customer Type",
          "operator" => "equals",
          "value" => "Platinum"
        }
      ]
    }
  },
  "respect_frequency_caps" => false,
  "content" => {
    "body" => "Sms body"
  },
  "when" => "now"
})

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end
import requests

headers = {
    'X-CleverTap-Account-Id': 'ACCOUNT_ID',
    'X-CleverTap-Passcode': 'PASSCODE',
    'Content-Type': 'application/json',
}

data = ' {"name": "My Sms API campaign","estimate_only": true,"target_mode":"sms", "where":{"event_name":"Charged","from":20171001,"to":20171220,"common_profile_properties":{"profile_fields": [ {"name": "Customer Type","operator":"equals","value": "Platinum"}]}},"respect_frequency_caps": false,"content": { "body": "Sms body"},"when": "now"}'

response = requests.post('https://in1.api.clevertap.com/1/targets/create.json', headers=headers, data=data)
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-CleverTap-Account-Id' => 'ACCOUNT_ID',
    'X-CleverTap-Passcode' => 'PASSCODE',
    'Content-Type' => 'application/json'
);
$data = ' {"name": "My Sms API campaign","estimate_only": true,"target_mode":"sms", "where":{"event_name":"Charged","from":20171001,"to":20171220,"common_profile_properties":{"profile_fields": [ {"name": "Customer Type","operator":"equals","value": "Platinum"}]}},"respect_frequency_caps": false,"content": { "body": "Sms body"},"when": "now"}';
$response = Requests::post('https://in1.api.clevertap.com/1/targets/create.json', $headers, $data);
var request = require('request');

var headers = {
    'X-CleverTap-Account-Id': 'ACCOUNT_ID',
    'X-CleverTap-Passcode': 'PASSCODE',
    'Content-Type': 'application/json'
};

var dataString = ' {"name": "My Sms API campaign","estimate_only": true,"target_mode":"sms", "where":{"event_name":"Charged","from":20171001,"to":20171220,"common_profile_properties":{"profile_fields": [ {"name": "Customer Type","operator":"equals","value": "Platinum"}]}},"respect_frequency_caps": false,"content": { "body": "Sms body"},"when": "now"}';

var options = {
    url: 'https://in1.api.clevertap.com/1/targets/create.json ',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

Example Response - Target User Events & Properties

{
  "status": "success",
  "estimates": {
    "web": 2
  }
}

Example Request - Event Occurrence

{
    "advanced_query": {
        "did_all": [
            {
                "event_name": "App Launched",
                "from": 20200101,
                "to": 20200218,
                "operator": "greater_than_equals",
                "value": 5,
            }
        ]
    }
}

Create Campaign API - Target Users by their Identities

You can send notifications to your users based on their Facebook ID, Email ID, custom-defined identity, or CleverTap ID.

You can message 1000 users per API request.

Base URL - Target Users by their Identities

The endpoint is different based on the channel you are sending the message.

Following are some example base URLs from the account in the India region:

SMS
https://in1.api.clevertap.com/1/send/sms.json

Push
https://in1.api.clevertap.com/1/send/push.json

❗️

Note:

The push.json API currently does not support Pull Notifications.

Web Push
https://in1.api.clevertap.com/1/send/webpush.json

Email
https://in1.api.clevertap.com/1/send/email.json

📘

Region

These are some example base URLs from the account in the India region. To know the API endpoint for your account, refer to Region.

HTTP Method - Target Users by their Identities

POST

Headers - Target Users by their Identities

These headers are all required. The X-CleverTap-Account-Id and X-CleverTap-Passcode are used to authenticate the request. Please see the authentication guide to see how to get their values.

HeaderDescriptionTypeExample Value
X-CleverTap-Account-IdYour CleverTap Account ID.string"X-CleverTap-Account-Id: ACCOUNT_ID"
X-CleverTap-PasscodeYour CleverTap Account Passcode.string"X-CleverTap-Passcode: PASSCODE"
Content-TypeRequest content-type should always set to application/json; charset=utf-8.string"Content-Type: application/json;charset=utf-8"

Body Parameters - Target Users by their Identities

The body is uploaded as a JSON payload.

to, name, title, body, subject, sender_name, and target_mode are required parameters.

The to parameter is an object that has the following child properties: FBID, Email, Identity, objectId, which are used as identifiers to target your users. Each request can contain a max of 1000 users across these identifiers.

ParameterDescriptionRequiredTypeExample Value
toUsed to define which users will receive the message.requiredobject"to": {
"FBID": [
"102029292929388",
"114342342453463"
],

"Email": [
"[email protected]",
"[email protected]"
],
"Identity": [
"JohnDoe"
],
"objectId": [
"_asdnkansdjknaskdjnasjkndja",
"-adffajjdfoaiaefiohnefwprjf"
]
}
to.FBIDFacebook ID for user.requiredarray of strings"to": {
"FBID": [
"102029292929388",
"114342342453463"
]
}
to.EmailEmail identifier for user.requiredarray of strings{
"to": {
"Email": [
"[email protected]",
"[email protected]"
]
}
to.IdentityCustom-defined identifier for user.requiredarray of strings{
"to": {
"Identity": [
"JohnDoe"
]
}
to.objectIdCleverTap identifier for user.requiredarray of strings{
"to": {
"objectId": [
"sdnkansdjknaskdjnasjkndja", "dffajjdfoaiaefiohnefwprjf"
]
}
tag_groupEach message can be tagged into a tag group. Metrics, such as sent and viewed, will be shown against each tag group in the CleverTap dashboard. Max 500 groups. If not specified, the metrics will be shown against the “Not Tagged” tag.optional (either use tag _group or campaign_id)string"my tag group"
contentObject that defines the content for your message.requiredobject"content": {
"subject": "Welcome",
"body": "
Your HTML content for the email
",
"sender_name": "CleverTap"
}
content.titleTitle content of your push notification message and web push message which is sent to the user.requiredstring"Hi"
content.bodyBody content of your push notification, web push, email and sms which is sent to the user.requiredstring“Have you seen the special offer?”
content.subjectSubject content of your email which is sent to the user.requiredstring"Subject"
content.sender_nameSender name for your email which is sent to the user.requiredstring“Onboarding”
provider_nick_nameAllows you to specify which vendor/provider to use for your campaign. For each target_mode, you can have multiple providers integrated with CleverTap, and this parameter lets you select which provider to use for the campaign. For example, let's say you select target_mode = email and you have integrated both SendGrid and Amazon SNS with CleverTap to send emails. In this scenario, you can set provider_nick_name = SendGrid to send the campaign through SendGrid.optionalstring"Provider 1"
respect_frequency_capsSet to false if you want to override frequency caps.optionalbooleanfalse
wzrk_cidPlatform specific key that is required to target users on devices running Android O - can be used to determine notification channel to which a given push notification must belong.

If a Notification ID is mandatory then the channel ID is expected. An error occurs if a valid channel ID is not received.
mandatorystring
badge_idPlatform specific key that can be used while targeting users on devices running Android O - can be used to determine the notification count shown on the app iconoptionalint
badge_iconPlatform specific key that can be used while targeting users on devices running Android O - can be used to determine which icon should be used.

Accepted values
app icon
notification icon
optionalstring
mutable-contentTo raise Notification viewed event for Push notifications, raise the flag to "true" in the platform_specific: ios section of the request payload.optionalboolean
platform_specificThe platform-specific details for Push and Web Push notificationoptionalstring
background_imageThe parameter to render images in the push notification for Android.Optionalstring
ct_mediaUrlThe parameter to render images in the push notification for iOS.Optionalstring
wzrk_clrA Platform specific key that can be used to set color for small icons in push notifications.optionalstring# 1DA1F2

Below are example payloads for web push, push, email, and SMS.

{
    "to": {
        "FBID": [
            "102029292929388",
            "114342342453463"
        ],
       
        "Email": [
            "[email protected]",
            "[email protected]"
        ],
        "Identity": [
            "JohnDoe"
        ],
        "objectId": [
            "_asdnkansdjknaskdjnasjkndja",
            "-adffajjdfoaiaefiohnefwprjf"
        ]
    },
    "tag_group": "my tag group",
        "campaign_id": 1000000043,
    "respect_frequency_caps": false,
     "content": {
        "title": "Hi!",
        "body": "How are you doing today?",
       "platform_specific": {
            "safari": {
                "deep_link": "https://www.google.com",
                "ttl":10
            },
            "chrome": {
              "image": "https://www.exampleImage.com",
              "icon":"https://www.exampleIcon.com",
              "deep_link": "http://www.example.com",
              "ttl":10,
              "require_interaction":true,
              "cta_title1":"title",
              "cta_link1":"http://www.example2.com",
              "cta_iconlink1":"https://www.exampleIcon2.com"
            },
            "firefox": {
                "icon":"https://www.exampleIcon.com",
                "deep_link": "https://www.google.com",
                "ttl":10
            }
        }
    }
}
{
    "to": {
        "FBID": [
            "102029292929388",
            "114342342453463"
        ],
        "GPID": [
            "1928288389299292"
        ],
        "Email": [
            "[email protected]",
            "[email protected]"
        ],
        "Identity": [
            "JohnDoe"
        ],
        "objectId": [
            "_asdnkansdjknaskdjnasjkndja",
            "-adffajjdfoaiaefiohnefwprjf"
        ]
    },
    "tag_group": "my tag group",
    "respect_frequency_caps": false,
    "content": {
        "title": "Welcome",
        "body": "Hello world!",
        "platform_specific": {
            "ios": {
                "deep_link": "example.com",
                "sound_file": "example.caf",
                "mutable-content": "true", 
                "ct_mediaUrl": "https://i.ibb.co/pJ8D5Z7/woman-g40aa99db5-1920.jpg",
                "category": "notification category",
                "badge_count": 1,
                "key": "value_ios"
            },
            "android": {
                "background_image": "http://example.jpg",
                "default_sound": true,
                "deep_link": "example.com",
                "large_icon": "http://example.png",
                "key": "value_android"
            }
        }
    }
}
{
    "to": {
        "FBID": [
            "102029292929388",
            "114342342453463"
        ],
        "GPID": [
            "1928288389299292"
        ],
        "Email": [
            "[email protected]",
            "[email protected]"
        ],
        "Identity": [
            "JohnDoe"
        ],
        "objectId": [
            "_asdnkansdjknaskdjnasjkndja",
            "-adffajjdfoaiaefiohnefwprjf"
        ]
    },
    "tag_group": "my tag group",
    "respect_frequency_caps": false,
    "content": {
        "subject": "Welcome",
        "body": "<div>Your HTML content for the email</div>",
        "sender_name": "CleverTap"
    }
}
{
    "to": {
        "FBID": [
            "102029292929388",
            "114342342453463"
        ],
        "GPID": [
            "1928288389299292"
        ],
        "Email": [
            "[email protected]",
            "[email protected]"
        ],
        "Identity": [
            "JohnDoe"
        ],
        "objectId": [
            "_asdnkansdjknaskdjnasjkndja",
            "-adffajjdfoaiaefiohnefwprjf"
        ]
    },
    "tag_group": "my tag group",
    "respect_frequency_caps": false,
     "content": {
        "body": "Sms body"
    }
}

Example Request - Target Users by their Identities

Here is an example cURL request to the Create Campaign API showing the headers needed to authenticate the request from the account in the India region:

curl -X POST -d '{"to":{"FBID":["102029292929388","114342342453463"],"Email":["[email protected]","[email protected]"],"Identity":["JohnDoe"],"objectId":["_asdnkansdjknaskdjnasjkndja","-adffajjdfoaiaefiohnefwprjf"]},"campaign_id":1000000043,"tag_group":"mytaggroup","respect_frequency_caps":false,"content":{"body":"Smsbody"}}' \
"https://in1.api.clevertap.com/1/send/sms.json" \
-H "X-CleverTap-Account-Id: ACCOUNT_ID" \
-H "X-CleverTap-Passcode: PASSCODE" \
-H "Content-Type: application/json"
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://in1.api.clevertap.com/1/send/sms.json")
request = Net::HTTP::Post.new(uri)
request.content_type = "application/json"
request["X-Clevertap-Account-Id"] = "ACCOUNT_ID"
request["X-Clevertap-Passcode"] = "PASSCODE"
request.body = JSON.dump({
  "to" => {
    "FBID" => [
      "102029292929388",
      "114342342453463"
    ],
   
    "Email" => [
      "[email protected]",
      "[email protected]"
    ],
    "Identity" => [
      "JohnDoe"
    ],
    "objectId" => [
      "_asdnkansdjknaskdjnasjkndja",
      "-adffajjdfoaiaefiohnefwprjf"
    ]
  },
  "tag_group" => "mytaggroup",
  "respect_frequency_caps" => false,
  "content" => {
    "body" => "Smsbody"
  }
})

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end
import requests

headers = {
    'X-CleverTap-Account-Id': 'ACCOUNT_ID',
    'X-CleverTap-Passcode': 'PASSCODE',
    'Content-Type': 'application/json',
}

data = '{"to":{"FBID":["102029292929388","114342342453463"],"Email":["[email protected]","[email protected]"],"Identity":["JohnDoe"],"objectId":["_asdnkansdjknaskdjnasjkndja","-adffajjdfoaiaefiohnefwprjf"]},"tag_group":"mytaggroup","respect_frequency_caps":false,"content":{"body":"Smsbody"}}'

response = requests.post('https://in1.api.clevertap.com/1/send/sms.json', headers=headers, data=data)
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-CleverTap-Account-Id' => 'ACCOUNT_ID',
    'X-CleverTap-Passcode' => 'PASSCODE',
    'Content-Type' => 'application/json'
);
$data = '{"to":{"FBID":["102029292929388","114342342453463"],"Email":["[email protected]","[email protected]"],"Identity":["JohnDoe"],"objectId":["_asdnkansdjknaskdjnasjkndja","-adffajjdfoaiaefiohnefwprjf"]},"tag_group":"mytaggroup","respect_frequency_caps":false,"content":{"body":"Smsbody"}}';
$response = Requests::post('https://in1.api.clevertap.com/1/send/sms.json', $headers, $data);
var request = require('request');

var headers = {
    'X-CleverTap-Account-Id': 'ACCOUNT_ID',
    'X-CleverTap-Passcode': 'PASSCODE',
    'Content-Type': 'application/json'
};

var dataString = '{"to":{"FBID":["102029292929388","114342342453463"],"GPID":["1928288389299292"],"Email":["[email protected]","[email protected]"],"Identity":["JohnDoe"],"objectId":["_asdnkansdjknaskdjnasjkndja","-adffajjdfoaiaefiohnefwprjf"]},"tag_group":"mytaggroup","respect_frequency_caps":false,"content":{"body":"Smsbody"}}';

var options = {
    url: 'https://in1.api.clevertap.com/1/send/sms.json',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

Example Response - Target Users by their Identities

{
    "status": "success",
    "message": "Added to queue for processing"
}

A success response implies payload validity and addition to the processing queue. Message delivery is handled by the provider (push or email) and depends on if you provided a valid recipient id.

Notes

If there are errors, you will receive a response in the format below.

{
    "status": "fail",
    "error": "<error message here>",
    "code": <error code here>
}

Here are the possible error codes.
21 – to is a mandatory field
84 – Invalid recipients”
73 – “respect_frequency_caps” must be a Boolean
78 – Invalid JSON payload
89 – Unexpected error, please try again

Unsubscribe Link for Emails

If you’re using Amazon SES or your own SMTP gateway, you’ll have to follow the steps listed on this page to enable your users to unsubscribe from your email notifications.