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

Documentation Index

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

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

Rate Limits

Rate Limit NameRate Limit
Create campaign per secondThe total number of create campaign requests per second per client allowed is 5.
Create campaign per minuteThe total number of create campaign requests per minute per client allowed is 25.
Create campaign per hourThe total number of create campaign requests per hour per client allowed is 100.

Campaign Creation Limits

You can create 5 campaigns per minute, 25 campaigns per hour, and 100 campaigns per day.
Notes
  • Higher limit (Total Calls): The system permits a higher volume of total API calls (for example, 120 calls) to accommodate potential failures or retries.
  • Minimum limit (Campaign Creation Limits): The system maintains a stricter quota for actual successful creations (100 campaigns per day). Example: If a client submits 120 requests and 20 fail, they successfully generate exactly 100 campaigns. Because the system applies the most restrictive threshold, the 100 successful operations trigger the quota limit, and the system issues a rate limit breach warning regardless of the total API calls made.
  • Breaching the limits will reject the request.
  • Per hour and per day limits will consider the calculation based on the last hour and last 24 hrs respectively.

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.

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"