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": "john.doe@example.com", "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.

Supported Channels

  • PUSH: Android, iOS, Web push notifications
  • EMAIL: Email campaigns

Rate Limits

  • 5 campaigns per minute
  • 25 campaigns per hour
  • 100 campaigns per day
After successful campaign creation, do not reuse the same request_id for 1 hour (Push) or 1 day (Email).

Authorizations

Authorization
string
header
required

Authentication is done via Basic Auth. The username is your Workspace ID (earlier APP ID) and the password is your API Key. The value is a base64 encoding of 'username:password'.

How to obtain credentials:

  1. Navigate to SettingsAccountAPIs in the MoEngage Dashboard
  2. Username: Copy the Workspace ID (earlier app id)
  3. Password: Copy the API key from the Campaign report/Business events/Custom templates tile

Headers

MOE-APPKEY
string
required

This is the workspace ID (earlier APP ID) of your MoEngage workspace.

You can find your MoEngage Workspace ID in the MoEngage Dashboard: SettingsAccountAPIsWorkspace ID (earlier app id)

Body

application/json

Campaign configuration including content, audience, and scheduling details. The schema will adapt based on the selected channel (PUSH or EMAIL).

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.

Example:

"john.doe@example.com"

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"