Skip to main content
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 CenterDashboard URLREST API Host
DC-01https://dashboard-01.moengage.comhttps://api-01.moengage.com
DC-02https://dashboard-02.moengage.comhttps://api-02.moengage.com
DC-03https://dashboard-03.moengage.comhttps://api-03.moengage.com
DC-04https://dashboard-04.moengage.comhttps://api-04.moengage.com
DC-05https://dashboard-05.moengage.comhttps://api-05.moengage.com
DC-06https://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.

Required Headers

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

  1. Log in to the MoEngage Dashboard
  2. Navigate to SettingsAccountAPIs
  3. Copy your Workspace ID and the relevant API Key

API Keys by Feature

Different APIs require different API keys from your dashboard:
APIAPI Key Location (Settings → Account → APIs)
DataData API Key
PushPush API Key
InformInform API Key
CampaignsCampaign report/Business events/Custom templates tile
CatalogCampaign report/Business events/Custom templates tile
PersonalizePersonalize 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.
APIRate Limit
Campaigns API5 requests/min, 25 requests/hour, 100 requests/day
Catalog API100 requests/min or 1,000 requests/hour
Campaign Stats API100 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

Rate Limit Response Headers

x-ratelimit-limit: 100
x-ratelimit-remaining: 95
x-ratelimit-reset: 1699574400

Payload Size Limits

APIMax Payload Size
Catalog API5 MB
Recommendations API1 MB
Bulk Import API100 KB
Custom Segments (File)150 MB per file

Error Handling

All APIs return consistent error responses.

Standard Error Format

{
  "status": "fail",
  "error": {
    "message": "The request parameters are invalid",
    "type": "Bad Request",
    "request_id": "abc123xyz"
  }
}

HTTP Status Codes

CodeDescription
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

MethodEndpointDescription
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

MethodEndpointDescription
POST/campaignsCreate Push or Email campaign
POST/transaction/sendpushSend push notification
POST/alerts/sendSend transactional alert (SMS/Email/Push)

Catalog

MethodEndpointDescription
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

MethodEndpointDescription
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

MethodEndpointDescription
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

MethodEndpointDescription
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

MethodEndpointDescription
POST/business_eventCreate business event
POST/business_event/triggerTrigger business event
POST/business_event/searchSearch business events

Live Activities (iOS)

MethodEndpointDescription
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.

Available tools

Your MCP server exposes the following tool:
ToolDescription
SearchMoEngageSearch across the MoEngage knowledge base to find documentation, code examples, API references, and implementation guides.

Connect to your AI tool

1

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.
2

Add the MoEngage MCP server

Add the following configuration to mcp.json:
mcp.json
{
  "mcpServers": {
    "MoEngage": {
      "url": "https://www.moengage.com/docs/mcp"
    }
  }
}
3

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.
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