Validate Campaign (V5)
Runs full publish-time validation (DRAFT_PUBLISH) on a saved draft without mutating it. Returns valid: true if the campaign would pass, or a list of blocking errors if it would not.
All campaign data is read from the saved draft identified by campaign_id in the path. There is no channel-specific payload.
Validation Modes
The V5 API applies validation in two modes:DRAFT_PUBLISH failures before triggering a publish.
Validation Failures
All validation failures are blocking. There is no warning or non-blocking tier. A campaign that fails validation returnsvalid: false with a list of field-level errors. Each error identifies the field path and the issue.
Channel-Specific Rules
The following rules are enforced atDRAFT_PUBLISH for each channel:
Push
campaign_contentmust be present and include content for all platforms listed inbasic_details.platforms.template_typemust be valid for the target platform (Android, iOS, Web).- Platform-specific required fields (for example,
titleandmessagefor Android basic templates) must be non-empty.
connector.connector_typeandconnector.connector_namemust be present and match a connector configured in your workspace.basic_details.from_addressmust be set and match a verified sender in the configured connector.basic_details.subscription_categorymust be present forPROMOTIONALcontent type.campaign_contentmust include at least one variation with a non-emptysubjectandhtml_content.
Delivery-Type-Specific Rules
The following rules are enforced atDRAFT_PUBLISH based on campaign_delivery_type:
Rate Limits
Authorizations
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 Settings → Account → API 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
Your MoEngage Workspace ID (App ID). Find it in the dashboard at Settings > Account > APIs > Workspace ID.
Correlates with response_id. Supply this header or request_id in the body; if both are set, they must match.
Path Parameters
Raw 24-char ObjectId of the campaign to validate. Use the id value returned in the Create Campaign response.
Body
Optional string (UUID v4 recommended) used to identify this validation call. Unlike other POST endpoints, this field is not required and does not enforce deduplication - the validate endpoint is read-only and safe to retry freely.
"{{request_id}}"
Response
Validation result - always returned regardless of whether the campaign passes or fails validation.