Beta We are refining the new API docs. While exploring them, you may encounter minor issues. We appreciate your patience as we finalize the content. The existing API docs will be accessible until the transition is complete.
API Categories
Data Create and update users, track events, manage devices, and import data in bulk.
Business Events Create and trigger business events to power automated campaigns.
Content Manage templates, content blocks, recommendations, coupons, and catalogs.
Campaigns Create and manage Push and Email campaigns programmatically.
Segments Create and manage file-based, filter-based, and cohort-synced user segments.
Subscriptions Manage email subscriptions and subscription category preferences.
Push Send transactional and targeted push notifications to Android, iOS, and Web.
Cards Fetch and manage App Inbox cards for users.
Inform Send transactional alerts across SMS, Email, and Push channels.
Live Activities Start, update, and end iOS Live Activities via broadcast.
Personalize Fetch and manage personalized experiences for users.
Message Archival View and retrieve archived messages.
Data Centers
MoEngage maintains multiple data centers. You are assigned to a specific data center when you sign up. You can identify your data center from your dashboard URL.
Data Center Dashboard URL REST API Host DC-01 https://dashboard-01.moengage.comhttps://api-01.moengage.comDC-02 https://dashboard-02.moengage.comhttps://api-02.moengage.comDC-03 https://dashboard-03.moengage.comhttps://api-03.moengage.comDC-04 https://dashboard-04.moengage.comhttps://api-04.moengage.comDC-05 https://dashboard-05.moengage.comhttps://api-05.moengage.comDC-06 https://dashboard-06.moengage.comhttps://api-06.moengage.comDC-101 https://dashboard-101.moengage.comhttps://api-101.moengage.com
Choosing a Data Center
If you have data privacy requirements to store user data in a specific geographical region:
US region : Sign up with DC-01 or DC-04
EU region : Sign up with DC-02
India region : Sign up with DC-03
Singapore region : Sign up with DC-05
Indonesia region : Sign up with DC-06
After data is captured in a workspace, it cannot be migrated to a different data center. Always use the REST API endpoint matching your registered data center.
Base URL
All API requests are made to:
https://api-{dc}.moengage.com
Replace {dc} with your data center number (e.g., 01, 02, 03). You can identify your data center from your Dashboard URL.
Each API may have additional path segments (e.g., /v1, /core-services/v1). Refer to the specific API documentation for the complete endpoint path.
Authentication
All MoEngage API requests require Basic Authentication. To authenticate, you must include a Base64-encoded string of your credentials in the Authorization header of every request. Basic Authentication sends a Base64-encoded string containing your username and password with every API request. It encodes a ‘username:password’ string in Base64 and appends the encoded string with ‘Basic ’. This string is included in the authorization header as shown below:
{"Authorization: Basic Base64_ENCODED_WORKSPACEID_APIKEY=="}
Authorization : Basic {base64_encoded_credentials}
MOE-APPKEY : {your_workspace_id}
Content-Type : application/json
Generating Credentials
The Authorization header value is a Base64 encoding of workspace_id:api_key.
# Example: Encoding credentials
echo -n "YOUR_WORKSPACE_ID:YOUR_API_KEY" | base64
Getting Your Credentials
Log in to the MoEngage dashboard .
Navigate to Settings > Account > APIs .
Copy your Workspace ID and the relevant API Key .
You can perform authentication using a client like Postman as follows:
API Keys by Feature
Different APIs require different API keys from your dashboard:
API API Key Location (Settings → Account → APIs) Data Data Push Push Inform Inform Campaigns and Catalog Campaign report/Business events/Custom templates/Catalog API/Inform Report Personalize Personalize
Rate Limits
Rate limits vary by API. Headers are included in responses to help you manage usage.
API Rate Limit Campaigns API 5 requests/min, 25 requests/hour, 100 requests/day Catalog API 100 requests/min or 1,000 requests/hour Campaign Stats API 100 requests/min/workspace Custom Segments (Filter) 50 requests/min, 200 requests/hour, 1,000 requests/day Custom Segments (File) 10 operations/hour, 100 operations/day
x-ratelimit-limit : 100
x-ratelimit-remaining : 95
x-ratelimit-reset : 1699574400
Payload Size Limits
API Max Payload Size Catalog API 5 MB Recommendations API 1 MB Bulk Import API 100 KB Custom Segments (File) 150 MB per file
Error Handling
All APIs return consistent error responses.
{
"status" : "fail" ,
"error" : {
"message" : "The request parameters are invalid" ,
"type" : "Bad Request" ,
"request_id" : "abc123xyz"
}
}
HTTP Status Codes
Code Description 200Success 201Created 202Accepted (async processing) 400Bad Request - Invalid parameters 401Unauthorized - Invalid credentials 403Forbidden - Access denied 404Not Found - Resource doesn’t exist 409Conflict - Duplicate resource 413Payload Too Large 429Rate Limit Exceeded 500Internal Server Error
Key Endpoints Reference
Data
Method Endpoint Description POST/customer/{Workspace_ID}Create or update user POST/customers/exportGet user details POST/customer/mergeMerge two users POST/customer/deleteDelete users in bulk POST/event/{Workspace_ID}Track user events POST/transition/{Workspace_ID}Bulk import POST/device/{app_id}Create or update device POST/devices/manageManage devices POST/fileimports/trigger/{schedule_id}Trigger file import POST/fileimports/import/statusGet import status GET/installInfoGet install info POST/integrations/authenticationValidate authentication POST/opengdpr_requests/{appId}Create GDPR/CCPA request
Business Events
Method Endpoint Description POST/business_eventCreate business event POST/business_event/triggerTrigger business event POST/business_event/searchSearch business events
Content
Templates
Method Endpoint Description POST/custom-templates/inappCreate In-App template PUT/custom-templates/inappUpdate In-App template POST/custom-templates/inapp/searchSearch In-App templates POST/custom-templates/osmCreate OSM template PUT/custom-templates/osmUpdate OSM template POST/custom-templates/osm/searchSearch OSM templates POST/custom-templates/smsCreate SMS template PUT/custom-templates/smsUpdate SMS template POST/custom-templates/sms/searchSearch SMS templates POST/email-templatesCreate Email template GET/email-templatesGet all Email templates GET/email-templates/{id}Get Email template by ID PUT/email-templates/{id}Update Email template POST/custom-templates/emailCreate Email template V2 PUT/custom-templates/emailUpdate Email template V2 POST/custom-templates/pushCreate Push template PUT/custom-templates/pushUpdate Push template POST/custom-templates/push/searchSearch Push templates
Content Blocks
Method Endpoint Description POST/content-blocksCreate content block PUT/content-blocksUpdate content block POST/content-blocks/get-by-idsGet content blocks by IDs POST/content-blocks/searchSearch content blocks
Recommendations
Method Endpoint Description GET/recommendations/{recommendations_id}Get recommendations POST/recommendations/{recommendations_id}/itemsGet recommendation items
Coupons
Method Endpoint Description POST/coupon-listCreate coupon list GET/coupon-listList coupon lists GET/coupon-list/{coupon_list_id}Get coupon list PATCH/coupon-list/{coupon_list_id}Update coupon list PUT/coupon-list/{coupon_list_id}/activateActivate coupon list PUT/coupon-list/{coupon_list_id}/archiveArchive coupon list POST/coupon-list/{coupon_list_id}/filesUpload coupon file GET/coupon-list/{coupon_list_id}/filesList coupon files GET/coupon-list/{coupon_list_id}/files/{coupon_file_id}Get coupon file DELETE/coupon-list/{coupon_list_id}/files/{coupon_file_id}Delete coupon file POST/coupon-list/{coupon_list_id}/usage-reportGet usage report
Catalog
Method Endpoint Description POST/catalogCreate catalog PATCH/catalog/{catalog_id}/attributesAdd catalog attributes POST/catalog/{catalog_id}/itemsIngest catalog items POST/catalog/{catalog_id}/items/searchSearch catalog items PATCH/catalog/{catalog_id}/itemsUpdate catalog items POST/catalog/{catalog_id}/items/bulk-deleteDelete catalog items
Campaigns
Method Endpoint Description POST/campaignsCreate campaign PATCH/campaigns/{campaign_id}Update campaign POST/campaigns/searchSearch campaigns POST/campaigns/testTest campaign POST/personalization/previewPreview personalization POST/campaigns/metaGet campaign metadata POST/campaigns/statusGet campaign status POST/campaigns/{parent_campaign_id}/executionsGet campaign executions POST/core-services/v1/campaign-statsGet campaign stats GET/campaign_reports/rest_api/{APP_ID}/{FILENAME}Download campaign report
Segments
Method Endpoint Description POST/v2/custom-segments/file-segmentCreate file segment PUT/v2/custom-segments/file-segment/add-usersAdd users to segment PUT/v2/custom-segments/file-segment/remove-usersRemove users from segment PUT/v2/custom-segments/file-segment/replaceReplace segment users GET/v3/custom-segmentsList filter segments POST/v3/custom-segmentsCreate filter segment GET/v3/custom-segments/{id}Get segment by ID PATCH/v3/custom-segments/{id}Update filter segment POST/v1/integrations/cohortsyncSync cohort audience PATCH/v2/custom-segments/archiveArchive segment PATCH/v2/custom-segments/unarchiveUnarchive segment
Subscriptions
Method Endpoint Description POST/emails/v1.0/bulk-resubscribeBulk resubscribe emails PUT/v1.0/opt-in-management/user-preferencesUpdate opt-in preferences GET/category-subscription/user-preferencesGet subscription preferences PUT/category-subscription/user-preferencesUpdate subscription preferences POST/category-subscription/user-preferencesCreate subscription preferences
Push
Method Endpoint Description POST/transaction/sendpushSend push notification
Cards
Method Endpoint Description POST/cards/fetchFetch cards DELETE/cards/deleteDelete cards
Method Endpoint Description POST/alerts/sendSend transactional alert (SMS/Email/Push)
Live Activities
Method Endpoint Description POST/live-activity/broadcast/startStart Live Activity POST/live-activity/broadcast/updateUpdate Live Activity POST/live-activity/broadcast/endEnd Live Activity
Personalize
Method Endpoint Description POST/experiences/fetchFetch experiences GET/experiences/metadataGet experience metadata POST/experiences/eventsTrack experience events
Message Archival
Method Endpoint Description POST/archival/viewView archived messages
Support
Need help with the API?
Help Center : help.moengage.com
Support : Contact your Customer Success Manager or reach out via the dashboard.