Skip to main content
BetaWe 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 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
DC-101https://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=="}

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 Settings > Account > APIs.
api-dashboard
  1. Copy your Workspace ID and the relevant API Key.
You can perform authentication using a client like Postman as follows: Authorization

API Keys by Feature

Different APIs require different API keys from your dashboard:
APIAPI Key Location (Settings → Account → APIs)
DataData
PushPush
InformInform
Campaigns and CatalogCampaign report/Business events/Custom templates/Catalog API/Inform Report
PersonalizePersonalize

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

MethodEndpointDescription
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

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

Content

Templates

MethodEndpointDescription
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

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

Recommendations

MethodEndpointDescription
GET/recommendations/{recommendations_id}Get recommendations
POST/recommendations/{recommendations_id}/itemsGet recommendation items

Coupons

MethodEndpointDescription
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

MethodEndpointDescription
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

MethodEndpointDescription
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

MethodEndpointDescription
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

MethodEndpointDescription
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

MethodEndpointDescription
POST/transaction/sendpushSend push notification

Cards

MethodEndpointDescription
POST/cards/fetchFetch cards
DELETE/cards/deleteDelete cards

Inform

MethodEndpointDescription
POST/alerts/sendSend transactional alert (SMS/Email/Push)

Live Activities

MethodEndpointDescription
POST/live-activity/broadcast/startStart Live Activity
POST/live-activity/broadcast/updateUpdate Live Activity
POST/live-activity/broadcast/endEnd Live Activity

Personalize

MethodEndpointDescription
POST/experiences/fetchFetch experiences
GET/experiences/metadataGet experience metadata
POST/experiences/eventsTrack experience events

Message Archival

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