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"
}

Documentation Index

Fetch the complete documentation index at: https://moengage-ios-release-notes-breaking-changes-doc-1961.mintlify.app/llms.txt

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

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.

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.

delivery_controls
object
required

Controls for Push campaign delivery behavior.

advanced
object
required

Advanced campaign settings.

trigger_condition
object

Trigger condition details for Push event-triggered campaigns.

Required for EVENT_TRIGGERED campaigns.

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"