Know of an official OpenAPI document? Contribute it →
For Agents
Stream user events into MoEngage for product analytics and campaign segmentation via a single POST /events endpoint authenticated with workspace headers.
Use for: I need to push a server-side purchase event to MoEngage, Stream a 'subscription_renewed' event into MoEngage with the user ID and plan name, Forward a backend conversion to MoEngage so it can trigger a campaign, Replay historical purchase events into a new MoEngage workspace
Not supported: Does not manage campaigns, segments, users, or read analytics back - use for inbound user-event ingestion only.
Jentic publishes the only available OpenAPI specification for MoEngage Data API, keeping it validated and agent-ready. The MoEngage Data API ingests user events into the MoEngage customer engagement platform via a single POST /events endpoint, allowing product and analytics teams to stream user actions, attributes, and timestamps for downstream segmentation, campaigns, and analytics. Authentication uses two paired headers - MOE-APPID identifies the workspace and MOE-API-KEY authorises the call.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the MoEngage Data API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fmoengage.com%2Fmoengage-data-api" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fmoengage.com%2Fmoengage-data-api" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with MoEngage Data API.
Push a user event such as 'product_viewed' with custom attributes into MoEngage
Stream backend purchase confirmations to MoEngage so they can trigger lifecycle campaigns
Forward server-side conversion events that the SDK cannot capture
Replay historical events into a new MoEngage workspace from a data warehouse
Send identified user events with a unique customer ID for cross-device stitching
Patterns agents use MoEngage Data API for, with concrete tasks.
★ Server-Side Event Streaming
Stream purchase confirmations, subscription renewals, and other backend events that the MoEngage mobile and web SDKs cannot see. POST /events accepts a user identifier, event name, attributes, and timestamp, and MoEngage routes them into the same engagement timeline as SDK-captured events. Backend integration is typically a single HTTP client call wrapped in the application's order or billing service.
Send a 'purchase_completed' event for user_id u-12345 with order_total 49.99 USD and timestamp via POST /events
Warehouse-to-MoEngage Backfill
Replay historical event data from BigQuery, Snowflake, or Redshift into MoEngage when migrating from another engagement platform. A scheduled job reads events in batches and POSTs them to /events with the original timestamps, so existing segments rebuild correctly and lifecycle campaigns trigger on real history rather than from migration day forward.
Read the last 90 days of 'order_placed' events from a BigQuery table and POST each one to MoEngage /events preserving the original event timestamp
Agent-Driven Conversion Tracking via Jentic
Use a Jentic-connected agent to stream conversion and intent events from internal tools into MoEngage so growth teams can build segments and triggers without engineering tickets. The agent searches Jentic for the events operation, loads the schema, and posts events with workspace credentials drawn from the vault.
When a sales rep marks a lead as 'closed-won' in the CRM, post a 'deal_closed' event to MoEngage with deal value and product attributes
1 endpoints — jentic publishes the only available openapi specification for moengage data api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/events
Ingest a user event into MoEngage
/events
Ingest a user event into MoEngage
What agents get from Jentic-routed access to this vendor.
Setup
Wiring the MoEngage Data API by hand means setting the MOE-APPID and MOE-API-KEY headers, shaping the event payload correctly, and coding the ingestion call yourself. Through Jentic you install once, import the MoEngage Data API from the API Directory, store the app id and key once, and your agent calls it.
Permission scoping
The MoEngage Data API sends the user event in the request body rather than as a path resource, so you limit the agent to the operations it needs, such as posting a user event. Only the operations you allow are callable, so nothing beyond event ingestion runs.
Credential isolation
Your MoEngage app id and API key are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'send a user event to MoEngage', and Jentic returns the POST /events operation with its body schema so the agent calls the right endpoint without parsing the vendor docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using MoEngage Data API through Jentic.
Why is there no official OpenAPI spec for MoEngage Data API?
MoEngage does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call MoEngage Data API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.
What authentication does the MoEngage Data API use?
Every request to POST /events must include both MOE-APPID (the workspace identifier) and MOE-API-KEY (the workspace data API key) as request headers. There is no OAuth flow - these are static workspace credentials. Through Jentic, both headers are stored encrypted in your Jentic One instance and injected at execution time so the agent never handles them directly.
Can I send historical events with backdated timestamps?
Yes. The /events payload accepts a timestamp field on each event, so server-side jobs can replay historical data into MoEngage with the original event time. This keeps segments and lifecycle campaigns aligned with real user history rather than the ingestion time.
What are the rate limits for the MoEngage Data API?
The OpenAPI spec does not declare a numeric rate limit. MoEngage applies per-workspace ingestion ceilings at the platform level - agents should batch outgoing events, respect 429 responses with exponential backoff, and avoid sending duplicate events with the same user_id and timestamp.
How do I send an event through Jentic?
Run pip install jentic, then search Jentic for 'send a user event to MoEngage'. Jentic returns the POST /events operation with its body schema. Load the schema, pass the user identifier, event name, attributes, and timestamp, then execute. The MOE-APPID and MOE-API-KEY headers are resolved from the vault.
Can I use the MoEngage Data API to read data back?
No. The Data API exposes a single POST /events endpoint for ingestion only. To read campaigns, segments, or user data programmatically, use the separate MoEngage management API (api_slug: moengage) which exposes /campaigns, /segments, and /customer endpoints.
Can I limit what my agent is allowed to do with the MoEngage Data API?
Yes. Jentic One is self-hosted, so you run the execution layer and your own rules decide which operations the agent may call. The MoEngage Data API exposes only a single POST /events ingestion operation, and you scope the agent to just that action, so it can stream user events but nothing else runs. Your MOE-APPID and MOE-API-KEY stay stored encrypted in your instance and are injected only when an allowed call executes, so the agent never handles the credentials directly.
GET STARTED