Data API Endpoints
Data API is a collection of the following APIs:- Track User
- Get User
- Merge User
- Delete User
- Create Event
- Track Device
- Device Opt-out
- MoEngage Streams
- Bulk Import
- Trigger File Imports
- Import Details
- Import File Run History
- Install Tracking
- Test connection
- S3 Data Import
- Track User
- Create Event
- Bulk Import
- Create users through Server-to-Server Data APIs even when they do not have an ID (but have other identifiers).
- Create a user or track events of a user when identifiers other than ID (for example, email ID or phone number) are known.
Request Headers
Authentication


Request Body
The request body contains the mandatory field calledcustomer_id. customer_id is the unique identifier set and passed on from the MoEngage SDK as USER_ATTRIBUTE_UNIQUE_ID and is visible on the dashboard as ID.
customer_id is used to:
- Identify or create a user in MoEngage
- Associate the events with the corresponding unique user profiles in MoEngage.
customer_id is used to verify if the user exists in MoEngage. If the user does not exist, a new user is created with the attributes or events.
- The maximum limit for the request body is 128 KB.
- Any string of more than one characters is allowed for
customer_idexcept the following values - [‘unknown’, ‘guest’, ‘null’, ‘0’, ‘1’, ‘true’, ‘false’, ‘user_attribute_unique_id’, ‘(empty)’, ‘na’, ‘n/a’, ”, ‘dummy_seller_code’, ‘user_id’, ‘id’, ‘customer_id’, ‘uid’, ‘userid’, ‘none’, ‘-2’, ‘-1’, ‘2’]
Sample Request Body
Below is a sample request body for the Create User API:Supported Datetime Formats
You can pass the datetime in the following formats in the request body:- Future and past date values are accepted and ingested.
- Any date values with incorrect calendar values (e.g., 2019-15-12 where 15 is not a valid month) are ingested as strings.
- Any datetime values incompatible with the formats mentioned above are converted to strings and then ingested.
Response
Response to the Data API is a JSON object. On a successful data API request, you will receive the following response:Response Codes
The following status codes and associated error messages are returned when the request results in a fatal error.User Attributes
Dashboard User Profile
On sending data through the data API, it will be populated in the user profile as shown below:
Limits
The Data API is designed to handle high volumes of data across our customer base. We enforce API limits to ensure responsible use of the API. The following table describes the recommended rate limits of the Data APIs:- The values mentioned above are default limits. If your requirement exceeds these limits, you can get in touch with the MoEngage support team to increase the limits.
- Make sure to adhere to the Fair Usage Policy (FUP) for high-frequency user data ingestion. This is mandatory to prevent disruption to data processing in your workspace. For more information, refer to the Fair Usage Policy (FUP).
FAQs
Track User
How do we reduce the 5xx errors because of too many requests per second/minute?
How do we reduce the 5xx errors because of too many requests per second/minute?
How do I know if my user data has been ingested into MoEngage?
How do I know if my user data has been ingested into MoEngage?
Although, this happens very rarely and you can search for newly ingested users in:
Segment > Create Segment > Search for users using their IDs
Can I use this API to also export users?
Can I use this API to also export users?
Can I use this API to delete users from MoEngage?
Can I use this API to delete users from MoEngage?
Get User
How do I know which users are available to export and which users are not available in MoEngage to export?
How do I know which users are available to export and which users are not available in MoEngage to export?
users key, and users not available will be found in the users_not_found key. Please refer to the sample response in this doc.What if I want to get all the user data available based on the user IDs without specifying the fields?
What if I want to get all the user data available based on the user IDs without specifying the fields?
user_fields_to_export is not passed, then all custom attributes and exportable standard attributes will be returned. For specific fields, user_fields_to_export needs to be passed along with the list of required fields.Merge User
Will the merged user information be available after using this API?
Will the merged user information be available after using this API?
What will happen to the reachability of the retained user?
What will happen to the reachability of the retained user?
Can any two users be merged?
Can any two users be merged?
Should both users have a device attached to them before merging?
Should both users have a device attached to them before merging?
Is there any restriction on the number of times a user can be merged?
Is there any restriction on the number of times a user can be merged?
Is there any restriction on the number of devices a merged/retained user should have?
Is there any restriction on the number of devices a merged/retained user should have?
What happens to the merged_user after the merge?
What happens to the merged_user after the merge?
retained_user. All events and user details of the merged_user will reflect on the retained_user. A merge event MOE_USER_MERGE_EVENT will be added to the merged_user (who will only have the MoEngage ID now).What happens to the retained_user after the merge?
What happens to the retained_user after the merge?
retained_user will now have all the user, device, and event details of the merged_user along with its own existing details. A MOE_USER_MERGED event will be added to the retained_user.What happens if a user creation request comes with the same ID as the deleted user?
What happens if a user creation request comes with the same ID as the deleted user?
What happens to the reachability if both users do not have devices?
What happens to the reachability if both users do not have devices?
What is the SLA to see user details reflect after the merge?
What is the SLA to see user details reflect after the merge?
How are events copied from the merged user to the retained user?
How are events copied from the merged user to the retained user?
Delete User
Can you reverse a delete operation?
Can you reverse a delete operation?
Are the events of the users also deleted as well?
Are the events of the users also deleted as well?
How do you check if a user has been deleted from MoEngage?
How do you check if a user has been deleted from MoEngage?
Create Event
How to identify the events to a given user? What identifiers can I use?
How to identify the events to a given user? What identifiers can I use?
Can I send events for anonymous users?
Can I send events for anonymous users?
Can events be updated/modified?
Can events be updated/modified?
Track Device
Can I pass custom device attributes using the Device API?
Can I pass custom device attributes using the Device API?
What happens if I pass the Identifier for Vendors (IDFV) value in the API?
What happens if I pass the Identifier for Vendors (IDFV) value in the API?
How many devices can I create for a user?
How many devices can I create for a user?
What if I create a new device with a moe_gaid, idfv, or push_id value that already exists for an existing device attached to a user in my MoEngage workspace?
What if I create a new device with a moe_gaid, idfv, or push_id value that already exists for an existing device attached to a user in my MoEngage workspace?
MoEngage Streams
What is the throughput, average volume, and batch size that can be expected?
What is the throughput, average volume, and batch size that can be expected?
What is the retry mechanism of Streams?
What is the retry mechanism of Streams?
- First Retry: 30 seconds
- Second Retry: 60 seconds
- Third Retry: 120 seconds
If I pause Streams, can I still get the data later?
If I pause Streams, can I still get the data later?
Does Streams guarantee the latest user attributes?
Does Streams guarantee the latest user attributes?
Can I export historical data using Streams?
Can I export historical data using Streams?
Bulk Import
Do the internal MoEngage validations of Track User API and Create Event API apply in Bulk API as well?
Do the internal MoEngage validations of Track User API and Create Event API apply in Bulk API as well?
Customer payload type, and Create Event API validations apply to the Event payload type within the Bulk API request.How do we reduce 5xx errors caused by too many requests per second or minute?
How do we reduce 5xx errors caused by too many requests per second or minute?
How do I know if my user data has been ingested into MoEngage?
How do I know if my user data has been ingested into MoEngage?
Trigger File Imports
Does the trigger API change the import schedule?
Does the trigger API change the import schedule?