Skip to main content
POST
/
campaigns
curl --request POST \
  --url https://api-{dc}.moengage.com/core-services/v1/campaigns \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --header 'MOE-APPKEY: <moe-appkey>' \
  --data '
{
  "request_id": "push_req_12345",
  "channel": "PUSH",
  "campaign_delivery_type": "ONE_TIME",
  "created_by": "[email protected]",
  "basic_details": {
    "name": "Summer Sale Push",
    "tags": [
      "activation",
      "sale"
    ],
    "platforms": [
      "ANDROID",
      "IOS"
    ],
    "platform_specific_details": {
      "android": {
        "push_amp_plus_enabled": true
      },
      "ios": {
        "send_to_all_eligible_device": true,
        "exclude_provisional_push_devices": false,
        "send_to_only_provisional_push_enabled_devices": false
      }
    }
  },
  "campaign_content": {
    "content": {
      "push": {
        "android": {
          "template_type": "BASIC",
          "basic_details": {
            "notification_channel": "general",
            "title": "50% Off Summer Sale!",
            "message": "Dont miss out on our biggest sale",
            "default_click_action": "DEEPLINKING",
            "default_click_action_value": "https://example.com/sale",
            "key_value_pairs": [
              {
                "key": "promo_code",
                "value": "SUMMER50"
              }
            ]
          }
        },
        "ios": {
          "template_type": "BASIC",
          "basic_details": {
            "title": "50% Off Summer Sale!",
            "message": "Dont miss out on our biggest sale",
            "default_click_action": "DEEPLINKING",
            "default_click_action_value": "https://example.com/sale"
          }
        }
      }
    }
  },
  "segmentation_details": {
    "included_filters": {
      "filter_operator": "and",
      "filters": [
        {
          "filter_type": "user_attributes",
          "data_type": "string",
          "name": "uid",
          "operator": "exists"
        }
      ]
    }
  },
  "scheduling_details": {
    "delivery_type": "ASAP"
  },
  "delivery_controls": {
    "campaign_throttle_rpm": 50000,
    "ignore_frequency_capping": false
  }
}
'
{
  "campaign_id": "camp_abc123xyz"
}
API EnablementIf this API is not enabled for your account, contact your MoEngage Customer Success Manager (CSM) or the Support team to request enablement.

Rate Limits

You can create 5 campaigns per minute, 25 campaigns per hour, and 100 campaigns per day.

Authorizations

Authorization
string
header
required

Authentication is done via Basic Auth. This requires a base64-encoded string of your credentials in the format 'username:password'.

  • Username: Use your MoEngage workspace ID (also known as the App ID). You can find it in the MoEngage dashboard at Settings > Account > APIs > Workspace ID (earlier app id).
  • Password: Use your API Key, which you can find within the Campaign report/Business events/Custom templates/Catalog API/Inform Report tile.

For more information on authentication and getting your credentials, refer here.

Headers

MOE-APPKEY
string
required

This is the Workspace ID of your MoEngage account that must be passed with the request. You can find it in the MoEngage dashboard at Settings > Account > APIs > Workspace ID (earlier app id).

Body

application/json

You can configure campaign content, audience, and scheduling details. Note: Use the tabs below to select your campaign type. The schema will adapt based on the selected channel.

request_id
string
required

A unique identifier for this campaign creation request.

Important: After successful campaign creation, do not reuse this request_id for the next 1 hour. If campaign creation fails, you can immediately retry with the same request_id.

Example:

"push_req_12345"

channel
enum<string>
required

The communication channel for this campaign.

Available options:
PUSH
campaign_delivery_type
enum<string>
required

The delivery type of the campaign.

Available options:
ONE_TIME,
PERIODIC,
EVENT_TRIGGERED,
BUSINESS_EVENT_TRIGGERED,
DEVICE_TRIGGERED,
LOCATION_TRIGGERED,
BROADCAST_LIVE_ACTIVITY
created_by
string<email>
required

The email ID of the user creating this campaign.

basic_details
object
required

Contains the basic information about the Push campaign.

campaign_content
object
required

Contains the content and variations for the Push campaign.

segmentation_details
object
required

Defines the target audience for the campaign.

scheduling_details
object
required

Defines when the campaign should be sent.

trigger_condition
object

Trigger condition details for Push event-triggered campaigns.

Required for EVENT_TRIGGERED campaigns.

delivery_controls
object

Controls for Push campaign delivery behavior.

advanced
object

Advanced campaign settings.

conversion_goal_details
object

Configuration for tracking campaign conversion goals.

control_group_details
object

Configuration for control groups.

utm_params
object

UTM parameters for tracking campaign performance.

Response

Campaign created successfully

campaign_id
string

The unique ID of the newly created campaign. Store this for future reference.

Example:

"camp_12345abc"