✨ MoEngage NEXT Spring 2026 — The Future of Engagement is Agentic. Join us on April 28. Register now
curl --request PATCH \
--url https://api-{dc}.moengage.com/core-services/v1/campaigns/{campaign_id} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'MOE-APPKEY: <moe-appkey>' \
--data '
{
"request_id": "push_update_12345",
"updated_by": "john.doe@example.com",
"campaign_content": {
"content": {
"push": {
"android": {
"template_type": "BASIC",
"basic_details": {
"notification_channel": "general",
"title": "Updated Title - Flash Sale!",
"message": "Updated Message - Only 2 hours left!",
"default_click_action": "DEEPLINKING",
"default_click_action_value": "https://example.com/flash-sale"
}
},
"ios": {
"template_type": "BASIC",
"basic_details": {
"title": "Updated Title - Flash Sale!",
"message": "Updated Message - Only 2 hours left!",
"default_click_action": "DEEPLINKING",
"default_click_action_value": "https://example.com/flash-sale"
}
}
}
}
}
}
'{
"error": {
"code": "400 Bad Request",
"message": "request_id key is mandatory field",
"target": "request_id",
"details": [
{
"target": "request_id",
"message": "request_id key is mandatory field"
}
],
"request_id": "11"
}
}This API updates an existing Push or Email campaign in MoEngage. You can only update campaigns created via the API, not campaigns created through the MoEngage dashboard.
curl --request PATCH \
--url https://api-{dc}.moengage.com/core-services/v1/campaigns/{campaign_id} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'MOE-APPKEY: <moe-appkey>' \
--data '
{
"request_id": "push_update_12345",
"updated_by": "john.doe@example.com",
"campaign_content": {
"content": {
"push": {
"android": {
"template_type": "BASIC",
"basic_details": {
"notification_channel": "general",
"title": "Updated Title - Flash Sale!",
"message": "Updated Message - Only 2 hours left!",
"default_click_action": "DEEPLINKING",
"default_click_action_value": "https://example.com/flash-sale"
}
},
"ios": {
"template_type": "BASIC",
"basic_details": {
"title": "Updated Title - Flash Sale!",
"message": "Updated Message - Only 2 hours left!",
"default_click_action": "DEEPLINKING",
"default_click_action_value": "https://example.com/flash-sale"
}
}
}
}
}
}
'{
"error": {
"code": "400 Bad Request",
"message": "request_id key is mandatory field",
"target": "request_id",
"details": [
{
"target": "request_id",
"message": "request_id key is mandatory field"
}
],
"request_id": "11"
}
}Documentation Index
Fetch the complete documentation index at: https://moengage-crashes-in-debug-feedback.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Authentication is done via Basic Auth. This requires a base64-encoded string of your credentials in the format 'username:password'.
For more information on authentication and getting your credentials, refer here.
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).
The unique ID of the campaign to update.
You can fetch the campaign ID using the Get Campaign Details API by filtering with campaign name, channel, or other criteria.
In this payload, you can include the fields you want to update.
Notes:
A unique identifier for this campaign update request.
"push_update_12345"
The email ID of the user updating this campaign.
"john.doe@example.com"
The communication channel (automatically set to PUSH for this tab).
PUSH Contains the basic information about the Push campaign.
Show child attributes
Trigger condition details for Push event-triggered campaigns.
Required for EVENT_TRIGGERED campaigns.
Show child attributes
Contains the content and variations for the Push campaign.
Show child attributes
Defines the target audience for the campaign.
Show child attributes
Defines when the campaign should be sent.
Show child attributes
Controls for Push campaign delivery behavior.
Show child attributes
Advanced campaign settings.
Show child attributes
Configuration for tracking campaign conversion goals.
Show child attributes
Configuration for control groups.
Show child attributes
UTM parameters for tracking campaign performance.
Show child attributes
Campaign updated successfully. The server successfully processed the request but is not returning any content.
Was this page helpful?