Skip to main content
POST
/
campaigns
/
search
curl --request POST \ --url https://api-{dc}.moengage.com/core-services/v1/campaigns/search \ --header 'Authorization: Basic <encoded-value>' \ --header 'Content-Type: application/json' \ --header 'MOE-APPKEY: <moe-appkey>' \ --data ' { "request_id": "search_req_12345", "campaign_fields": { "channels": [ "EMAIL" ] }, "limit": 15, "page": 1 } '
[ { "campaign_id": "camp_email_123", "status": "Active", "channel": "EMAIL", "campaign_delivery_type": "PERIODIC", "created_by": "john.doe@example.com", "created_at": "2024-07-04 08:00:54.847000", "sent_time": "2024-07-04 20:32:00", "basic_details": { "name": "Weekly Newsletter", "content_type": "PROMOTIONAL", "subscription_category": "marketing", "tags": [ "newsletter" ] }, "connector": { "connector_type": "SENDGRID", "connector_name": "default" } } ]
Supported Channels
  • PUSH: Push notification campaigns
  • EMAIL: Email campaigns
  • SMS: SMS campaigns
Search Capabilities
  • Filter by channel, delivery type, status, tags, name, ID, created by, created date
  • Include child campaigns (flow nodes, periodic children)
  • Include archived campaigns
  • Paginated results (max 15 per page)
If this API is not enabled for your account, contact your MoEngage Customer Success Manager (CSM) or the Support team to request enablement.
To fetch flow campaign nodes, set include_child_campaigns to true. Flow campaigns can be identified by the presence of flow_id and flow_name in the response.

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

Search criteria and pagination parameters for finding campaigns.

request_id
string
required

A unique identifier for this search request.

Example:

"search_req_12345"

limit
integer
required

The number of campaigns to display per page.

Maximum: 15

Required range: 1 <= x <= 15
Example:

10

page
integer
required

The page number to retrieve.

For example, if there are 200 campaigns and the limit is 10, there will be 20 pages.

Required range: x >= 1
Example:

1

campaign_fields
object

Filter criteria for searching campaigns.

include_child_campaigns
boolean
default:false

Whether to include child campaigns (flow nodes and periodic children).

Set to true to fetch details of periodic child campaigns and flow campaign nodes.

include_archive_campaigns
boolean
default:false

Whether to include archived campaigns in the results.

Response

Successfully retrieved campaign list

campaign_id
string

The unique ID of the campaign.

Example:

"camp_abc123xyz"

status
enum<string>

The current status of the campaign.

Available options:
ACTIVE,
SCHEDULED,
PAUSED,
SENT,
STOPPED,
ARCHIVED
channel
enum<string>

The communication channel.

Available options:
PUSH,
EMAIL,
SMS
campaign_delivery_type
enum<string>

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>

The email ID of the user who created the campaign.

updated_by
string<email>

The email ID of the user who last updated the campaign.

created_at
string

The timestamp when the campaign was created.

Example:

"2024-07-04 08:00:54.847000"

updated_at
string

The timestamp when the campaign was last updated.

sent_time
string

The timestamp when the campaign was sent.

Example:

"2024-07-04 20:32:00"

flow_id
string

The flow ID (only for flow campaigns).

Only applicable when include_child_campaigns is true.

flow_name
string

The flow name (only for flow campaigns).

Only applicable when include_child_campaigns is true.

parent_id
string

The campaign ID of the parent campaign.

Only applicable for periodic child campaigns when include_child_campaigns is true.

basic_details
object

Basic details of the campaign.

Structure varies by channel (Push/Email/SMS).

campaign_content
object

The campaign content including locales and variations.

trigger_condition
object

Trigger condition details for event-triggered campaigns. Structure varies by channel (Push supports INTELLIGENT_DELAY, Email does not).

segmentation_details
object

Defines the target audience for the campaign.

scheduling_details
object

Defines when the campaign should be sent.

delivery_controls
object

Delivery control settings for the campaign.

advanced
object

Advanced campaign settings (for Push 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.

connector
object

Connector configuration (for Email and SMS campaigns).

sender_name
string

The sender name configured for the campaign.

Only applicable for SMS campaigns.

campaign_audience_limit
object

Configuration for limiting campaign audience.