Skip to main content
POST

Rate Limits

Notes
  • Breaching the limits will reject the request.
  • Per-hour and per-day limits use a rolling window of the last 1 hour and last 24 hours 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: On your MoEngage workspace, navigate to SettingsAccountAPI keys and click Create new key. The tab lists every API surface (Data, Segmentation, Push, Email, Campaigns, Templates, and more) and exposes per-resource actions. For Campaigns, ensure the View, Create & Manage, and Create, Manage & Publish checkboxes are selected.

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

Send the value in the Authorization header as Basic followed by Base64-encoding of appkey:apisecret (workspace ID and API key).

Headers

MOE-APPKEY
string
required

Your MoEngage Workspace ID (App ID). Find it in the dashboard at Settings > Account > APIs > Workspace ID.

X-MOE-Request-Id
string
required

Correlates with response_id. Supply this header or request_id in the body; if both are set, they must match.

Idempotency-Key
string<uuid>
required

UUID v4. Required on all POST and PATCH requests except POST /v5/campaigns/{campaign_id}/validate. Repeating the same key returns the same response body.

Body

application/json

Provide the search criteria and pagination parameters for finding campaigns.

limit
integer
required

The number of campaigns to return per page.

Maximum: 15. The response does not include a total_count field - to determine the total number of results, keep paginating until a response returns fewer items than limit.

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

10

page
integer
required

The page number to retrieve (1-indexed).

For example, with 200 campaigns and a limit of 10, there are 20 pages.

Required range: x >= 1
Example:

1

request_id
string

An optional unique identifier for this search request (UUID v4 recommended).

  • In V1, request_id was required on every search call. In V5, it is optional.
  • Providing it is recommended for traceability and debugging. MoEngage support can use the value to locate the specific request in server logs.
Example:

"{{request_id}}"

campaign_fields
object

Filter criteria for searching campaigns.

The following filter field names changed from V1 to V5:

  • id (V1, string) is ids in V5 (array of strings). Pass a single-element array to replicate V1 single-ID filtering.
  • delivery_type (V1) is campaign_delivery_type in V5.

All other V1 filter fields (channels, created_by, created_date, name, status, tags) use the same names in V5.

include_child_campaigns
boolean
default:false

When true, includes child campaigns in results. Defaults to false.

Child campaign types included:

  • Periodic children: Carry parent_id in the response.
  • Flow-node campaigns: Carry flow_id and flow_name in the response.
include_archive_campaigns
boolean
default:false

When true, includes campaigns in ARCHIVED status in search results. By default, archived campaigns are excluded even if ARCHIVED is not in campaign_fields.status.

Defaults to false.

Response

Campaigns matching the filter criteria.

response_id
string
type
string
Example:

"campaign"

data
object

Search and meta list endpoints wrap rows under data.campaigns.