Documentation Index

Fetch the complete documentation index at: https://docs.xtremepush.com/llms.txt

Use this file to discover all available pages before exploring further.

Execute

Prev Next
Post
/execute/campaign

Used to trigger an API-triggered campaign.


Note: In default asynchronous mode, a successful result does not signify that the message has been delivered to gateway, only that all validations have passed (eg. campaign exists, target set, params in correct format).

Review the campaign model properties page to see the available parameters.

Body parameters
Execute with personalisation params

Executing a campaign, targeting a single user by external ID and setting a number of variables in the campaign text

{
  "apptoken": "YOUR_APPTOKEN",
  "id": "CAMPAIGN_ID",
  "target_by": "user_id",
  "target_with_params": {
    "user1": {
      "first_name": "Alex",
      "balance": "100 EUR"
    },
    "user2": {
      "first_name": "John",
      "balance": "80 EUR"
    }
  }
}
Execute at a specific time

Executing a campaign at a specific time and including external_message_id in the request, which is a customer-defined reference for the transaction

{
  "apptoken": "YOUR_APPTOKEN",
  "id": "CAMPAIGN_ID",
  "target_by": "user_id",
  "target": [
    "12345"
  ],
  "time": "2024-12-01T10:00:00Z"
}
Create or update profile on execute

Setting the optional param target_existing_only to 0 allows creating a new user profile and update system attributes if they are passed within target_with_params in the request

{
  "apptoken": "YOUR_APPTOKEN",
  "id": "CAMPAIGN_ID",
  "target_by": "user_id",
  "target": [
    "NEW_USER_ID"
  ],
  "target_existing_only": "0"
}
Execute with payload

Executing a campaign with a payload deeplink to be used when the notification is opened

{
  "apptoken": "YOUR_APPTOKEN",
  "id": "CAMPAIGN_ID",
  "target_by": "user_id",
  "target": [
    "12345"
  ],
  "params": {
    "first_name": "Sam",
    "balance": "500"
  }
}
Execute with retry and require interaction

Executing a campaign that enables the web push require interaction option, and has a retry period of 2 weeks

{
  "apptoken": "YOURAPPTOKEN",
  "id": "CAMPAIGNID",
  "target_by": "user_id",
  "target": [
    "12345"
  ],
  "messages": {
    "3": {
      "push_require_interaction": "True"
    }
  },
  "retry_for": "2",
  "retry_for_period": "weeks"
}
object
apptoken
string Required

Your app token

id
integer (int32) Required

ID of the Campaign within Xtremepush

target_by
string

Specify the type of identifier used in target or target_with_params. Allowed values: id (Xtremepush device id - default), user_id (client-defined unique user/contact id), email, mobile_number, profile_id (Xtremepush profile ID), token (push token), or specific mobile OS identifiers: device_adid, device_idfv, device_idfa.

target
Array of string

List of targeted IDs, type defined by target_by. Eg. ["user1", "user2"]

string
target_with_params
string (json)

An alternative to target parameter if you want to pass the values of any personalisation params you have in your campaign template message. Eg. {"user1": {"fname":"Alex","balance":"100 EUR"}, "user2": {"fname":"John", "balance": "80 EUR"}}

target_existing_only
string

Optional. Set to 0 to create a new user profile if the profile didn't exist before.

params
string (json)

Personalisation params used when targeting a single user or all messages are to be modified with the same params. Eg. {"first_name":"Sam","balance":"500"}. Where params are defined they will be applied to all the targeted profiles; any overrides or additional params defined in target_with_params will be merged in or override the default set in params.

time
string

Optional to specify when to execute the campaign. It will be executed immediately if this param is omitted. You can use both date string and unix timestamp as a value.

async
string

Optional. If set to 0 your request will be processed completely before API response is returned. In this way you enable an extra level of error reporting being able to receive errors like: "Recipient not found", "Message is suppressed due to insufficient personalization params". The limitation of non-async mode is that you're only allowed to target a single profile/device. In case you need an extra level of reporting for batch sends you should use a separate query to fetch batch send status.

Responses
200

200

Result
{
  "success": "True",
  "code": "200",
  "message": "Campaign is successfully executed"
}
object
success
boolean
Defaulttrue
ExampleTrue
code
integer
Default0
Example200
message
string
ExampleCampaign is successfully executed
400

400

Result
{
  "success": "False",
  "code": "400",
  "errors": {
    "execute": [
      "Web Push: one or multiple messages were suppressed due to insufficient personalization params"
    ]
  }
}
Expand All
object
success
boolean
Defaulttrue
ExampleFalse
code
integer
Default0
Example400
errors
object
execute
Array of string
string
ExampleWeb Push: one or multiple messages were suppressed due to insufficient personalization params