Welcome to the MoEngage API reference. Build powerful integrations to automate campaigns, sync user data, manage product catalogs, and deliver personalized experiences at scale.
API Categories
Data Create and update users, track events, manage devices, and import data in bulk.
Campaigns Create and manage Push and Email campaigns programmatically.
Push Send transactional and targeted push notifications to Android, iOS, and Web.
Inform Send transactional alerts across SMS, Email, and Push channels.
Catalog Manage product catalogs for recommendations and personalization.
Cards Fetch and manage App Inbox cards for users.
Custom Segments Create and manage file-based and filter-based user segments.
Business Events Create and trigger business events to power automated campaigns.
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.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
Once 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 APIs use Basic Authentication combined with a MOE-APPKEY header.
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
API Keys by Feature
Different APIs require different API keys from your dashboard:
API API Key Location (Settings → Account → APIs) Data Data API Key Push Push API Key Inform Inform API Key Campaigns Campaign report/Business events/Custom templates tile Catalog Campaign report/Business events/Custom templates tile Personalize Personalize API Key
Quick Start
Now that you have your credentials, make your first API request. This example creates a user profile using the Data API.
curl -X POST "https://api-01.moengage.com/v1/customer/YOUR_WORKSPACE_ID" \
-H "Content-Type: application/json" \
-u "YOUR_WORKSPACE_ID:YOUR_DATA_API_KEY" \
-d '{
"type": "customer",
"customer_id": "john@example.com",
"attributes": {
"name": "John Doe",
"u_em": "john@example.com",
"platforms": [
{
"platform": "ANDROID",
"active": "true"
}
]
}
}'
Replace api-01 with your data center’s API host (e.g., api-02, api-03).
Expected Response:
{
"status" : "success" ,
"message" : "Your request has been accepted and will be processed soon."
}
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 APIs
Method Endpoint Description POST/customer/{Workspace_ID}Create or update user POST/customers/exportGet user details POST/customer/mergeMerge two users POST/customer/delete/bulkDelete users in bulk POST/event/{Workspace_ID}Track user events POST/device/{appId}Create or update device POST/transition/{Workspace_ID}Bulk import users and events
Campaigns & Messaging
Method Endpoint Description POST/campaignsCreate Push or Email campaign POST/transaction/sendpushSend push notification POST/alerts/sendSend transactional alert (SMS/Email/Push)
Catalog
Method Endpoint Description POST/catalogCreate catalog PATCH/catalog/{catalog_id}/attributesAdd catalog attributes POST/catalog/{catalog_id}/itemsIngest catalog items PATCH/catalog/{catalog_id}/itemsUpdate catalog items POST/catalog/{catalog_id}/items/bulk-deleteDelete catalog items
Templates
Method Endpoint Description POST/custom-templates/pushCreate Push template PUT/custom-templates/pushUpdate Push template POST/custom-templates/push/searchSearch Push templates POST/custom-templates/smsCreate SMS template PUT/custom-templates/smsUpdate SMS template POST/custom-templates/sms/searchSearch SMS templates 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/email-templatesCreate Email template PUT/email-templates/{template_id}Update Email template GET/email-templatesGet all Email templates GET/email-templates/{template_id}Get Email template by ID
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
Segments & Audiences
Method Endpoint Description POST/v2/custom-segments/file-segmentCreate file segment POST/v3/custom-segments/Create filter segment GET/v3/custom-segmentsList custom segments GET/v3/custom-segments/{id}Get segment by ID
Business Events
Method Endpoint Description POST/business_eventCreate business event POST/business_event/triggerTrigger business event POST/business_event/searchSearch business events
Live Activities (iOS)
Method Endpoint Description POST/live-activity/broadcast/startStart Live Activity POST/live-activity/broadcast/updateUpdate Live Activity POST/live-activity/broadcast/endEnd Live Activity
MCP Server
MoEngage provides a hosted Model Context Protocol (MCP) server that connects your AI-powered development tools directly to MoEngage documentation. Instead of searching the web, your AI assistant queries MoEngage docs in real time for accurate, up-to-date answers about APIs, SDKs, and platform features.
Your MCP server exposes the following tool:
Tool Description SearchMoEngageSearch across the MoEngage knowledge base to find documentation, code examples, API references, and implementation guides.
Cursor
VS Code
Claude
Claude Code
Open MCP settings
Use Cmd + Shift + P (macOS) or Ctrl + Shift + P (Windows/Linux) to open the command palette, then search for “Open MCP settings” . This opens the mcp.json file.
Add the MoEngage MCP server
Add the following configuration to mcp.json: {
"mcpServers" : {
"MoEngage" : {
"url" : "https://www.moengage.com/docs/mcp"
}
}
}
Restart and verify
Restart Cursor, then ask the AI assistant a question about MoEngage. You should see the SearchMoEngage tool listed as available. In Cursor’s chat, ask “What tools do you have available?” and confirm the MoEngage MCP server appears.
Create the MCP config file
Create a .vscode/mcp.json file in your project root and add: {
"servers" : {
"MoEngage" : {
"type" : "http" ,
"url" : "https://www.moengage.com/docs/mcp"
}
}
}
Restart and verify
Restart VS Code. The MoEngage MCP server is now available to Copilot Chat.
Open Claude settings
Navigate to the Connectors page in your Claude settings.
Add the MoEngage MCP server
In a chat, select the attachments button (the plus icon).
Select Add .
Enter MoEngage as the name and https://www.moengage.com/docs/mcp as the URL.
Select Add custom connector .
Use in conversation
Ask Claude any question about MoEngage. Claude automatically searches the documentation when relevant.
Run the following command to add the MoEngage MCP server: claude mcp add --transport http MoEngage https://www.moengage.com/docs/mcp
Verify the connection:
You can skip manual setup by using the contextual menu on any MoEngage documentation page. Select Connect to Cursor or Connect to VS Code to install automatically, or copy the install command: npx add-mcp MoEngage https://www.moengage.com/docs/mcp
The MCP server is available for public documentation only. Rate limits apply: 200 requests per hour per user and 1,000 requests per hour across all users.
Support
Need help with the API?
Help Center : help.moengage.com
Support : Contact your Customer Success Manager or reach out via the dashboard