# MoEngage: API Guide

## API Guide

### Endpoints

- [API Documentation](https://moengage.com/docs/api/introduction.md): Explore MoEngage REST APIs for managing user data, campaigns, segments, templates, and integrations.
- [Rate Limits](https://moengage.com/docs/api/rate-limits.md): Understand API rate limits and payload size caps for the MoEngage REST APIs, how to monitor usage, and what happens when a limit is exceeded.

#### Data

- [Data Overview](https://moengage.com/docs/api/data/data-overview.md): Manage users, track events, handle devices, and perform bulk data operations.
- [Streams](https://moengage.com/docs/api/data/moengage-streams.md): Forward user actions and campaign events to your API endpoint in near real-time using MoEngage Streams.

##### User

- [Track User](https://moengage.com/docs/api/user/track-user.md): This API adds or updates users and user properties in MoEngage. You can create a new user, create new user property, or update existing user properties of users.
- [Get User](https://moengage.com/docs/api/user/get-user.md): This API facilitates the retrieval of information of users by specifying the user IDs.
- [Merge Users](https://moengage.com/docs/api/user/merge-users.md): This API merges two users in MoEngage based on their ID, which is a client-defined identifier for a user. You can use this API when multiple profiles have been created for a single user. For example, you can merge a user registered once with a mobile number and once with an email ID. You can also me…
- [Delete Users](https://moengage.com/docs/api/user/delete-users.md): This API deletes users in MoEngage. You cannot retrieve users once deleted. Users deleted (hard delete) using this API will be deleted after a default buffer of 24 hours. During this buffer period, the user will still be active in MoEngage and will be visible in Segments, Analytics, and Campaigns. Y…

##### Event

- [Track Event](https://moengage.com/docs/api/event/track-event.md): This API  tracks the actions of a user.

##### Bulk

- [Bulk Import Users and Events](https://moengage.com/docs/api/bulk/bulk-import-users-and-events.md): The Bulk Import API sends multiple user and event requests in batch to MoEngage, using a single API request. You can send a batch request of a maximum of 100 KB in a single API call.

##### Device

- [Track Device](https://moengage.com/docs/api/device/track-device.md): This API adds or updates devices and device properties in MoEngage. You can create a new device for an existing user, create new device properties for an existing user, or update the device properties of the existing user.
- [Device Opt-out](https://moengage.com/docs/api/device/device-opt-out.md): This API blocks or unblocks specific devices from receiving push notifications triggered from MoEngage. To prevent push notifications from reaching a specific user or all devices associated with a user, call the API to block them. This is useful for reasons such as device theft or fraudulent activit…

##### File Import

- [File Import Overview](https://moengage.com/docs/api/data/file-import-overview.md): Fetch the processing status at both the import and file levels.
- [Trigger File Imports](https://moengage.com/docs/api/file-import/trigger-file-imports.md): This API triggers scheduled file imports. You can trigger periodic imports to run using this API if the import has not expired and is in any of the following states- Scheduled, Successful, Partially Successful, and Failed.
- [Import Details](https://moengage.com/docs/api/file-import/import-details.md): This API fetches the status at an import level. It can fetch the status of multiple imports but not the status of the files within the import.
- [Import File Run History](https://moengage.com/docs/api/file-import/import-file-run-history.md): This API fetches the file processing status of each file contained in an import. The API request must contain either the import_name or the import_id. If you are not sure of the import_id or the import_name, you can use the [Import Details API](https://www.moengage.com/docs/api/file-import/import-de…

##### Tracking

- [Track App Install](https://moengage.com/docs/api/tracking/track-app-install.md): This API tracks the install attribution data in MoEngage, which you can then use to enhance your marketing automation campaigns on MoEngage.

##### Utilities

- [Test Connection API](https://moengage.com/docs/api/utilities/test-connection-api.md): This API validates if the entered endpoint details are valid. It verifies if the provided endpoint URL, workspace ID, and data key are accessible and responds without any errors.

##### GDPR/CCPA

- [GDPR or CCPA Overview](https://moengage.com/docs/api/gdpr-ccpa/gdpr-ccpa-overview.md): Manage user data privacy rights and erasure requests to ensure GDPR and CCPA compliance.
- [Submit a GDPR / CCPA Data Request](https://moengage.com/docs/api/gdpr/submit-a-gdpr-ccpa-data-request.md): GDPR or CCPA API ensures all the rights of users are created or updated for GDPR or CCPA compliance. You can erase the personal data of specific users as defined under GDPR using the Erase API.

#### Business Events

##### Business Events (V5)

- [Business Events API (V5): Overview](https://moengage.com/docs/api/business-events/business-events-v5/business-events-v5-overview.md): Trigger real-time business events through the unified MoEngage gateway, and look up the events registered in your workspace.
- [Trigger Business Event (V5)](https://moengage.com/docs/api/business-events/trigger-business-event-v5.md): Fires a registered business event, enqueueing all attached active campaigns and flows for delivery, subject to per-workspace daily and hourly quotas.
- [List Business Events](https://moengage.com/docs/api/business-events/list-business-events.md): Returns all business events in the workspace, or a single one when you supply `name` or `id`. Use either `name` or `id`, not both. Omit both parameters to list everything (paginated).
- [Search Business Events (V5)](https://moengage.com/docs/api/business-events/search-business-events-v5.md): Returns all business events in the workspace, or the subset matching a filter. Provide either `names` or `ids` inside `filters` (not both). Omit the body (or `filters`) to list everything (paginated).

##### Business Events (Legacy)

- [Business Events API (Legacy): Overview](https://moengage.com/docs/api/business-events/business-events-legacy/business-events-overview.md): Create, manage, and trigger real-time business events to power automated MoEngage campaigns.
- [Create Business Event](https://moengage.com/docs/api/business-events/create-business-event.md): This API creates business events in MoEngage. You can use these events to trigger campaigns whenever they occur. In MoEngage, you can set up event-triggered campaigns to notify users about new episodes, flight delays, or price reductions on items they have viewed, wished for, or added to their carts…
- [Trigger Business Event](https://moengage.com/docs/api/business-events/trigger-business-event.md): This API triggers a business event in MoEngage. You can set up campaigns to be executed when these events are triggered.
- [Search Business Events](https://moengage.com/docs/api/business-events/search-business-events.md): This API searches for business events by specifying their event IDs.

#### Content

##### Templates

###### Custom In-App Templates

- [In-app Templates Overview](https://moengage.com/docs/api/in-app-templates/in-app-templates-overview.md): Create, search, and update In-app templates (Self-Handled and HTML).
- [Create In-app Template](https://moengage.com/docs/api/in-app-templates/create-in-app-template.md): This API creates an In-app template in MoEngage. You can use this API to upload templates created outside the MoEngage ecosystem to MoEngage and use them for campaign creation.
- [Update In-app Template](https://moengage.com/docs/api/in-app-templates/update-in-app-template.md): This API updates an In-app template as per your requirements.
- [Search In-app Templates](https://moengage.com/docs/api/in-app-templates/search-in-app-templates.md): This API searches the In-app templates created in your MoEngage account.

###### Custom OSM Templates

- [OSM Templates Overview](https://moengage.com/docs/api/osm-templates/osm-templates-overview.md): Create, search, and update On-Site Messaging (OSM) templates.
- [Create OSM Template](https://moengage.com/docs/api/osm-templates/create-osm-template.md): This API creates a new On-Site Messaging (OSM) template. You can use this API to upload templates created outside the MoEngage ecosystem to MoEngage and use them for campaign creation.
- [Update OSM Template](https://moengage.com/docs/api/osm-templates/update-osm-template.md): This API updates an OSM template as per your requirements.
- [Search OSM Templates](https://moengage.com/docs/api/osm-templates/search-osm-templates.md): This API searches the OSM templates created in your MoEngage account.

###### Custom SMS Templates

- [SMS Templates Overview](https://moengage.com/docs/api/sms-templates/sms-templates-overview.md): Use the MoEngage SMS Templates API to create, search, and update reusable SMS templates for campaigns.
- [Create SMS Template](https://moengage.com/docs/api/sms-templates/create-sms-template.md): This API creates an SMS template in MoEngage. It helps you upload templates created outside the MoEngage ecosystem to MoEngage and use them for campaign creation.
- [Update SMS Template](https://moengage.com/docs/api/sms-templates/update-sms-template.md): This API updates an SMS template by specifying its external template ID. You can specify in the request whether the updated version of the template can be used in active campaigns.
- [Search SMS Templates](https://moengage.com/docs/api/sms-templates/search-sms-templates.md): This API searches and retrieves a list of SMS templates, created in your MoEngage account, based on specified filter criteria.

###### Custom Email Templates V1

- [Email Templates (V1) Overview](https://moengage.com/docs/api/email-templates-1/email-templates-1-overview.md): Define, reuse, update, and manage email templates created outside the MoEngage ecosystem effortlessly.
- [Create Email Template (V1)](https://moengage.com/docs/api/email-templates/create-email-template-v1.md): This API creates an email template in MoEngage. You can use this API to upload templates created outside the MoEngage ecosystem to MoEngage and use them for campaign creation on the MoEngage dashboard.
- [Get All Templates](https://moengage.com/docs/api/email-templates/get-all-templates.md): This API fetches the list of all the email templates available in your MoEngage account.
- [Get Specific Template](https://moengage.com/docs/api/email-templates/get-specific-template.md): This API fetches an email template using its template ID.
- [Update Specific Template](https://moengage.com/docs/api/email-templates/update-specific-template.md): Updates an existing email template by specifying its template ID in the path.
- [Bulk Create/Update Templates](https://moengage.com/docs/api/email-templates/bulk-createupdate-templates.md): This API creates or updates email templates in bulk. You can create or update up to 50 templates in a single request.

###### Custom Email Templates V2

- [Email Templates (V2) Overview](https://moengage.com/docs/api/email-templates-2/email-templates-2-overview.md): Define, reuse, update, and manage email templates created outside the MoEngage ecosystem effortlessly.
- [Create Email Template (V2)](https://moengage.com/docs/api/email-templates/create-email-template-v2.md): This API creates an email template in MoEngage. You can use this API to upload templates created outside the MoEngage ecosystem to MoEngage and use them for campaign creation. The uploaded templates can be edited in the Froala editor (custom HTML editor) on the MoEngage dashboard.
- [Search Email Template](https://moengage.com/docs/api/email-templates/search-email-template.md): This API searches the email templates created in your MoEngage account.
- [Update Email Template](https://moengage.com/docs/api/email-templates/update-email-template.md): This API updates an email template by specifying its external template ID. You can specify whether the updated version of the template can be used in active campaigns in the request.

###### Custom Push Templates

- [Push Templates Overview](https://moengage.com/docs/api/push-templates/push-templates-overview.md): Create, update, and search for push notification templates.
- [Create Push Template](https://moengage.com/docs/api/templates/create-push-template.md): This API creates a new push notification template for one or more platforms (Android, iOS).
- [Update Push Template](https://moengage.com/docs/api/templates/update-push-template.md): This API updates an existing push notification template by creating a new version.
- [Search for Push Templates](https://moengage.com/docs/api/templates/search-for-push-templates.md): This API searches the push templates created in your MoEngage account.

##### Content Blocks

- [Content Blocks Overview](https://moengage.com/docs/api/content-blocks/content-blocks-overview.md): Fetch, create, and manage reusable content blocks.
- [Create Content Block](https://moengage.com/docs/api/content-blocks/create-content-block.md): This API creates a content block in MoEngage.
- [Update Content Block](https://moengage.com/docs/api/content-blocks/update-content-block.md): This API updates the content blocks in MoEngage.
- [Get Specific Content Blocks](https://moengage.com/docs/api/content-blocks/get-specific-content-blocks.md): This API retrieves specific content blocks from the available content blocks in your MoEngage account.
- [Search Content Blocks](https://moengage.com/docs/api/content-blocks/search-content-blocks.md): This API searches for the available content blocks in your MoEngage account.

##### Content APIs

- [Content APIs Overview](https://moengage.com/docs/api/content-apis/content-apis-overview.md): List the content APIs configured in your workspace and test a saved configuration against its upstream endpoint.
- [List Content APIs](https://moengage.com/docs/api/content-apis/list-content-apis.md): Returns all content APIs in the workspace, or a single one when you supply `name` or `id`. Use either `name` or `id`, not both. Omit both parameters to list every content API in the workspace (paginated).
- [Test Content API](https://moengage.com/docs/api/content-apis/test-content-api.md): Loads the saved content API identified by `id` and executes it against the upstream endpoint, returning the response. The full definition — URL, method, parameters, headers, body, and authentication — comes from the saved configuration.

##### Locales

- [Locales Overview](https://moengage.com/docs/api/locales/locales-overview.md): List the locales configured in your workspace and look up a single locale by name or ID.
- [List Locales](https://moengage.com/docs/api/locales/list-locales.md): Returns all locales in the workspace, or a single locale when you supply `name` or `id`. Use either `name` or `id`, not both. Omit both parameters to list every locale in the workspace (paginated).

##### Recommendations

- [Recommendations Overview](https://moengage.com/docs/api/recommendations/recommendations-overview.md): Fetch recommendation metadata and retrieve personalized item results.
- [Fetch All Recommendations](https://moengage.com/docs/api/recommendations/fetch-all-recommendations.md): This API retrieves the list of recommendations configured in your workspace, along with the metadata of each recommendation. The results are sorted by the last updated time, with the most recently updated recommendation first.
- [Fetch Recommendation Details](https://moengage.com/docs/api/recommendations/fetch-recommendation-details.md): This API retrieves the metadata associated with a specific recommendation setup using its unique ID. The metadata can include the recommendation name, model type, status, creation and update time, and so on.
- [Fetch Recommendation Results](https://moengage.com/docs/api/recommendations/fetch-recommendation-results.md): This API fetches/retrieves the metadata results of any recommendations for a user based on their user ID and item ID.

##### Coupons

- [Coupon Management Overview](https://moengage.com/docs/api/coupons/coupons-overview.md): Manage unique coupon lists, upload coupon codes, and generate usage reports within the MoEngage system.
- [Create a Coupon List](https://moengage.com/docs/api/coupon-lists/create-a-coupon-list.md): This API creates single-use coupon codes. You can use this API to create and organize distinct lists for different coupon code categories.
- [Fetch All Coupon Lists](https://moengage.com/docs/api/coupon-lists/fetch-all-coupon-lists.md): This API fetches all created coupon lists in a specific workspace. By default, this API returns the coupon lists marked with an *ACTIVE* status. In return, it offers detailed specifications of the active coupon lists, respective configurations, statuses, expiry dates, and alert conditions, including…
- [Fetch Coupon List Details](https://moengage.com/docs/api/coupon-lists/fetch-coupon-list-details.md): This API retrieves the specifications of a particular coupon list. It includes information such as configurations, statuses, expiry dates, and alert conditions with real-time counts of added and currently available coupons. Using this API, you can easily access and manage critical data about individ…
- [Update a Coupon List](https://moengage.com/docs/api/coupon-lists/update-a-coupon-list.md): This API modifies existing coupon lists within a defined workspace. It facilitates changes to specifications like list name, expiry date, and alert settings, thereby promoting efficient coupon operations management.
- [Activate Coupon List](https://moengage.com/docs/api/coupon-lists/activate-coupon-list.md): This API reactivates archived coupon lists, provided the expiry date is in the future.
- [Archive a Coupon List](https://moengage.com/docs/api/coupon-lists/archive-a-coupon-list.md): This API transitions an active coupon list to an archived status. Upon archival, the coupon codes within the list are deleted. Consequently, any campaigns that were previously dependent on this list will no longer be able to utilize the dynamic coupon allocation.
- [Upload a Coupon File to the Coupon List](https://moengage.com/docs/api/coupon-files/upload-a-coupon-file-to-the-coupon-list.md): After you create a coupon list, you must add coupons to the list to be distributed through campaigns. If a coupon list has been running for some time, it may be running low after serving several campaigns.
- [Fetch All Coupon Files From Coupon List](https://moengage.com/docs/api/coupon-files/fetch-all-coupon-files-from-coupon-list.md): This API retrieves the details of each file in the given coupon list that is added and not deleted. The information retrieved will include the file's status, the number of coupons added from each file, and the respective file's addition date, thereby providing a comprehensive breakdown of each file'…
- [Fetch a Coupon File from Coupon List](https://moengage.com/docs/api/coupon-files/fetch-a-coupon-file-from-coupon-list.md): This API retrieves the details of a particular coupon file added to a given coupon list. This includes information such as file status, the number of added coupons, and the file addition date.
- [Delete a Coupon File from the Coupon List](https://moengage.com/docs/api/coupon-files/delete-a-coupon-file-from-the-coupon-list.md): This API removes a specific coupon file from a coupon list. It is useful in scenarios where a test file or incorrect file is inadvertently uploaded, thereby ensuring the accuracy and effectiveness of your coupon list management.
- [Generate Usage Report](https://moengage.com/docs/api/reports/generate-usage-report.md): This API produces a detailed usage report for a specific coupon list, providing details on which user received which coupon from which locale or variation of which campaign at what time. After it is generated, this report is delivered directly to the requested email addresses. Using this API, you ca…

##### Catalog

- [Catalog Overview](https://moengage.com/docs/api/catalog/catalog-overview.md): Manage product and item catalogs, define attributes, and handle bulk item ingestion.
- [Create Catalog](https://moengage.com/docs/api/catalog/create-catalog.md): This API creates a new catalog with a unique name. You can specify the necessary attributes along with their respective data types.
- [Add Catalog Attributes](https://moengage.com/docs/api/catalog/add-catalog-attributes.md): This API adds new attributes to the catalog. If the API request contains attributes that already exist, they will not be added again.
- [Add Items](https://moengage.com/docs/api/items/add-items.md): This API ingests items into an existing catalog as long as the attributes provided during ingestion match the attributes provided during catalog creation.
- [Get Items](https://moengage.com/docs/api/items/get-items.md): This API retrieves item attribute details for catalog items using their unique item IDs. The attributes can include the title, price, category, link, image_link, and the respective creation date.
- [Update Items](https://moengage.com/docs/api/items/update-items.md): This API updates items with new attribute values. Attributes must adhere to the data type defined.
- [Delete Items](https://moengage.com/docs/api/items/delete-items.md): This API deletes existing items in a given catalog.

#### Flows

- [Flows Overview](https://moengage.com/docs/api/flows/flows-overview.md): List, read, and control MoEngage Flows.
- [Search Flows](https://moengage.com/docs/api/flows/search-flows.md): This API returns a paginated list of the flows in your workspace, filtered by the criteria you send in the request body. Requires the `campaigns:view` permission.
- [Get a Single Flow](https://moengage.com/docs/api/flows/get-a-single-flow.md): This API returns the full details of one flow, including its settings, targeting, conversion goal, and stage-by-stage structure. Requires the `campaigns:view` permission.
- [Get a Specific Version of a Flow](https://moengage.com/docs/api/flows/get-a-specific-version-of-a-flow.md): This API returns a flow exactly as it was in a past version, addressed by its version ID. Use it to audit what was live before a change. Requires the `campaigns:view` permission.
- [Update Flow Status](https://moengage.com/docs/api/flows/update-flow-status.md): This API changes a flow's lifecycle state. Requires the `campaigns:create_manage` permission.

#### Offerings

- [Offerings Overview](https://moengage.com/docs/api/offerings/offerings-overview.md): Create, update, and list offerings for Offer Decisioning in MoEngage.
- [List Offerings](https://moengage.com/docs/api/public-offerings/list-offerings.md): Fetch all offerings in the workspace. Returns a summary of each offering — ID, name, status, tags, and creation metadata.
- [Create Offering](https://moengage.com/docs/api/public-offerings/create-offering.md): Create a new Offering in the workspace.
- [Update Offering](https://moengage.com/docs/api/public-offerings/update-offering.md): Modify an existing offering. Only the fields you include in the request body are changed.
- [List Offer Templates](https://moengage.com/docs/api/public-offerings/list-offer-templates.md): Fetch the personalization templates available in the workspace.

#### Campaigns

##### Campaigns

- [Campaigns Overview](https://moengage.com/docs/api/campaigns/campaign-draft-overview.md): Use the MoEngage Campaigns API to create, update, test, and manage campaigns programmatically. V5 supports campaign creation for Push and Email, with search, retrieval, and personalized preview available for SMS and other channels.
- [Create Campaign Draft (V5)](https://moengage.com/docs/api/create-campaigns/create-campaign-draft-v5.md): Creates a Push or Email campaign draft. Content, audience, and delivery settings can be included at the time of creation, or added later via `PATCH /v5/campaigns/{campaign_id}`.
- [Campaign content reference](https://moengage.com/docs/api/campaigns/campaign-content-reference.md): Reference for basic_details and campaign_content per channel, platform, and template type. Used by the Create Campaign and Update Campaign endpoints.
- [Audience and delivery reference](https://moengage.com/docs/api/campaigns/audience-scheduling-delivery-reference.md): Reference for trigger_condition, segmentation_details, scheduling_details, delivery_controls, conversion_goal_details, control_group_details, utm_params, campaign_audience_limit, advanced, and geofences. Used by the Create Campaign and Update Campaign endpoints.
- [Get Campaign (V5)](https://moengage.com/docs/api/get-campaign-details/get-campaign-v5.md): Returns the full configuration and current status of a single campaign by its ID.
- [Update Campaign (V5)](https://moengage.com/docs/api/update-campaigns/update-campaign-v5.md): Updates individual components of a campaign draft.
- [Validate Campaign (V5)](https://moengage.com/docs/api/create-campaigns/validate-campaign-v5.md): Runs full publish-time validation (`DRAFT_PUBLISH`) on a saved draft without mutating it. Returns `valid: true` if the campaign would pass, or a list of blocking errors if it would not.
- [Update Campaign Status (V5)](https://moengage.com/docs/api/update-campaigns/update-campaign-status-v5.md): Applies a state transition to a published campaign. Supported for **Email** and **Push** campaigns.
- [Search Campaigns (V5)](https://moengage.com/docs/api/get-campaign-details/search-campaigns-v5.md): Returns the full V5 campaign payload for all campaigns that match the specified filters. Supports pagination and filtering by channel, status, tags, name, IDs, dates, delivery type, and creator.
- [Test Campaign (V5)](https://moengage.com/docs/api/test-campaigns/test-campaign-v5.md): Sends a test Push or Email message to specific users or device identifiers before publishing the campaign.
- [Get Campaign Meta (V5)](https://moengage.com/docs/api/get-campaign-details/get-campaign-meta-v5.md): Returns lightweight metadata for one or more campaigns without loading their full configuration.

##### Campaigns (Legacy)

- [Campaigns (Legacy) Overview](https://moengage.com/docs/api/campaigns/campaigns-overview.md): Use the MoEngage Campaigns API to create, update, test, and manage Push and Email campaigns programmatically.
- [Create Campaign](https://moengage.com/docs/api/create-campaigns/create-campaign.md): This API creates a new Push or Email campaign in MoEngage with specified content, audience, and delivery settings.
- [Update Campaign (V1 — Legacy)](https://moengage.com/docs/api/update-campaigns/update-campaign-v1-—-legacy.md): This API updates an existing Push or Email campaign in MoEngage. You can only update campaigns created via the API, not campaigns created through the MoEngage dashboard.
- [Search Campaigns](https://moengage.com/docs/api/get-campaign-details/search-campaigns.md): This API fetches a list of Push, Email, or SMS campaigns with all current fields and status. You can pass multiple filters to find specific campaigns.
- [V1 vs. V5 Search Campaigns: Behavioral Differences](https://moengage.com/docs/api/campaigns/search-campaigns-v5-migration.md): A comparison of behavioral, structural, and field-level differences between the V1 and V5 Search Campaigns APIs to help you understand what has changed.
- [Test Campaign](https://moengage.com/docs/api/test-campaigns/test-campaign.md): This API sends a test Push or Email campaign to specific users or identifiers before launching it to your entire audience. You can only test campaigns created via the API, not campaigns created through the MoEngage dashboard.
- [Personalized Preview](https://moengage.com/docs/api/test-campaigns/personalized-preview.md): This API shows a preview of personalized content for a specific user before sending a Push, Email, or SMS campaign. This API retrieves personalized message content with all user/event attributes resolved. Use this API to validate your personalization logic and see exactly how content will appear to…
- [Get Campaign Meta (V1 — Legacy)](https://moengage.com/docs/api/get-campaign-details/get-campaign-meta-v1-—-legacy.md): This API retrieves campaign details and reachability information for scheduled campaigns.
- [Change Campaign Status](https://moengage.com/docs/api/update-campaigns/change-campaign-status.md): This API updates the status of campaigns to stop, pause, or resume them. You can only change the status of campaigns created via the [Create Campaign API](https://www.moengage.com/docs/api/create-campaigns/create-campaign) (not dashboard-created campaigns).
- [Get Child Campaigns](https://moengage.com/docs/api/get-campaign-details/get-child-campaigns.md): This API retrieves child campaign execution details for Periodic or Business Event-triggered campaigns. Use this API to track execution history of recurring campaigns and monitor the performance of individual instances.
- [Update Global Control Group](https://moengage.com/docs/api/update-campaigns/update-global-control-group.md): This API adds or removes users from the Global Control Group (GCG) in MoEngage. Provide a publicly accessible CSV of user IDs and specify whether to add or remove those users.

##### Campaign Report and Stats

- [Campaign Stats and Reports Overview](https://moengage.com/docs/api/stats-report/stats-report-overview.md): Fetch real-time campaign performance statistics and download detailed campaign reports programmatically.
- [Get Campaign Stats](https://moengage.com/docs/api/stats/get-campaign-stats.md): This API fetches data at the platform level and provides data for all types of campaigns.
- [Download Campaign Report](https://moengage.com/docs/api/campaign-reports/download-campaign-report.md): This API downloads campaign reports for any specific date range. You can fetch reports for one-time and periodic campaigns.

#### Analyze

##### Dashboards

- [Custom Dashboards Overview](https://moengage.com/docs/api/analytics/analytics-overview.md): Programmatically access MoEngage Custom Dashboards and fetch the analytics data behind their charts.
- [List Dashboards](https://moengage.com/docs/api/dashboards/list-dashboards.md): Returns the custom dashboards available to the authenticated workspace. Archived dashboards are excluded.
- [Get Dashboard Charts](https://moengage.com/docs/api/dashboards/get-dashboard-charts.md): Returns the details of a single dashboard, including its name, creator, and owner. It also returns the list of charts on the dashboard, in layout order. Each chart entry contains the chart's ID and name.
- [Get Chart Data](https://moengage.com/docs/api/dashboards/get-chart-data.md): Returns the data behind a single chart, as an array of rows. Each call runs the chart's analytics query and returns the result.

##### Analytics

- [Analytics Query APIs Overview](https://moengage.com/docs/api/analytics-query/analytics-query-overview.md): Run MoEngage Analytics queries — Behavior, Funnels, Retention, Session/Source, and User Property Analysis — and fetch their results programmatically.
- [Register a Behavior Query](https://moengage.com/docs/api/analytics-queries/register-a-behavior-query.md): Registers an asynchronous Behavior analysis query and returns a `request_id`. Behavior analysis measures how many users perform one or more events over a time range, broken down by the dimensions you choose.
- [Register a Funnels Query](https://moengage.com/docs/api/analytics-queries/register-a-funnels-query.md): Registers an asynchronous Funnels analysis query and returns a `request_id`. Funnels analysis measures step-by-step conversion and drop-off across an ordered sequence of events.
- [Register a Retention Query](https://moengage.com/docs/api/analytics-queries/register-a-retention-query.md): Registers an asynchronous Retention analysis query and returns a `request_id`. Retention analysis groups users who performed a first event into cohorts, then measures how many return to perform a second event in each later period.
- [Register a Session-Source Query](https://moengage.com/docs/api/analytics-queries/register-a-session-source-query.md): Registers an asynchronous Session/Source analysis query and returns a `request_id`. Session/Source analysis reports session count or average session duration, broken down by acquisition attributes such as source, medium, and campaign.
- [Register a User Analysis Query](https://moengage.com/docs/api/analytics-queries/register-a-user-analysis-query.md): Registers an asynchronous User Property Analysis (UPA) query and returns a `request_id`. User Property Analysis computes counts, distinct-value counts, distributions, and aggregations over user attributes for a cohort of users.
- [Get Query Status](https://moengage.com/docs/api/analytics-queries/get-query-status.md): Returns the execution status of a registered query. Poll this endpoint until the query reaches a terminal status, then fetch the results.
- [Get Query Results](https://moengage.com/docs/api/analytics-queries/get-query-results.md): Returns the resolved results of a completed query, as an array of metric rows.

#### Segments

- [Segments Overview](https://moengage.com/docs/api/custom-segments/custom-segments-overview.md): Create, update, and manage your file-based, filter-based, and cohort-synced segments.

##### File Segments

- [Create File Segment](https://moengage.com/docs/api/file-segments/create-file-segment.md): This API creates a new file segment from a CSV file URL.
- [Add Users to File Segment](https://moengage.com/docs/api/file-segments/add-users-to-file-segment.md): This API adds a list of users from a CSV file to an existing file segment.
- [Remove Users from File Segment](https://moengage.com/docs/api/file-segments/remove-users-from-file-segment.md): This API removes a list of users from a CSV file from an existing file segment.
- [Replace Users from File Segment](https://moengage.com/docs/api/file-segments/replace-users-from-file-segment.md): This API replaces all users in an existing file segment with a new list of users from a CSV file.

##### Filter Segments

- [List Segments](https://moengage.com/docs/api/filter-segments/list-segments.md): This API lists all segments. You can optionally filter segments by an exact name match.
- [Create Filter Segment](https://moengage.com/docs/api/filter-segments/create-filter-segment.md): This API creates a new segment based on a set of filter conditions.
- [Get Segment by ID](https://moengage.com/docs/api/filter-segments/get-segment-by-id.md): This API fetches a specific segment (File or Filter) by its ID.
- [Update Filter Segment](https://moengage.com/docs/api/filter-segments/update-filter-segment.md): This API updates an existing filter segment by its ID.

##### Cohort Sync

- [Sync Cohort Members](https://moengage.com/docs/api/cohort-sync/sync-cohort-members.md): This API adds or removes a list of users from a custom segment (cohort) in MoEngage.

##### Manage Segments

- [Archive Segment](https://moengage.com/docs/api/manage-segments/archive-segment.md): This API archives an existing segment (File or Filter). Archiving and unarchiving through APIs makes it easy to retrieve and reuse segments whenever required for purposes such as A/B testing, maintaining regulatory compliance, and improving system performance. You can unarchive an archived segment t…
- [Unarchive Segment](https://moengage.com/docs/api/manage-segments/unarchive-segment.md): This API unarchives an existing segment, making it active again.

#### Subscriptions

##### Email Subscription

- [Email Subscription Overview](https://moengage.com/docs/api/email-subscription/email-subscription-overview.md): Manage user email resubscription, opt-in status, and category preferences.
- [Bulk Resubscribe Users](https://moengage.com/docs/api/resubscribe/bulk-resubscribe-users.md): This API resubscribes users who have previously unsubscribed on the MoEngage platform and an external email vendor platform simultaneously. This API resets the unsubscribe flag to “false” for users on MoEngage and makes a call to an External Service Provider (ESP) like SendGrid to remove the email a…
- [Update User Email Opt-in Preferences](https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences.md): This API updates a user's overall email opt-in status and/or category-level subscription preferences within MoEngage. This API is typically used after a user submits the second confirmation through MoEngage consent-seeking emails (Double Opt-in).

##### Subscription Categories

- [Subscription Categories Overview](https://moengage.com/docs/api/subscription-categories/subscription-categories-overview.md): Fetch and update email subscription preferences on your MoEngage dashboard.
- [Get Subscription Preferences](https://moengage.com/docs/api/subscription-preferences/get-subscription-preferences.md): This API fetches the subscription category preferences information for a specific user based on the encrypted User ID and Campaign ID found in the landing page URL.
- [Update Subscription Preferences](https://moengage.com/docs/api/subscription-preferences/update-subscription-preferences.md): This API updates the subscription category preferences for a specific user who navigates from an email. This endpoint requires the encrypted IDs obtained from the email link.
- [Bulk Update Subscription Preferences](https://moengage.com/docs/api/subscription-preferences/bulk-update-subscription-preferences.md): This API updates subscription category preferences in bulk. You can use this API to update the user preferences to MoEngage in large volumes.

#### Push

- [Push Overview](https://moengage.com/docs/api/push/push-overview.md): Create campaigns and send personalized push notifications to individual users or segments across Android, iOS, and Web.
- [Push API](https://moengage.com/docs/api/push/push-api.md): This API creates and sends a push notification campaign. You can use this API to create campaigns (targeting all users or a group of users) to send notifications, target a single user using a unique user attribute, and personalize payload for each user.
- [Push API (Legacy)](https://moengage.com/docs/api/push/push-api-legacy.md): This API creates and sends a push notification campaign. You can use this API to create campaigns (targeting all users or a group of users) to send notifications, target a single user using a unique user attribute, and personalize payload for each user.

#### Cards

- [Cards Overview](https://moengage.com/docs/api/cards/cards-overview.md): Use the MoEngage Cards API to fetch, filter, and delete user-specific cards from your application.
- [Fetch Cards for User](https://moengage.com/docs/api/cards/fetch-cards-for-user.md): This API retrieves all active and updated cards for a specific user from the MoEngage Cards database. You can filter the search results based on the platform and card category and check if any card was updated for the user since the previous sync.
- [Delete Cards for User](https://moengage.com/docs/api/cards/delete-cards-for-user.md): This API deletes cards for a specified user from the MoEngage Cards database.

#### Inform

- [Inform Overview](https://moengage.com/docs/api/inform/inform-overview.md): Send a transactional alert to a user on one or more channels.
- [Send Transactional Alert](https://moengage.com/docs/api/transactional-alerts/send-transactional-alert.md): This API is used to trigger a transactional message/alert to the user via one or more configured channels.

#### Live Activities

- [Live Activities Overview](https://moengage.com/docs/api/live-activities/live-activities-overview.md): Initiate, update, and terminate shared real-time activities for iOS users.
- [Start Broadcast Live Activity](https://moengage.com/docs/api/live-activities/start-broadcast-live-activity.md): This API initiates a shared, real-time activity for a large audience, such as a live sporting match or real-time election result tracking.
- [Update Broadcast Live Activity](https://moengage.com/docs/api/live-activities/update-broadcast-live-activity.md): This API pushes a single, unified update to all subscribed Live Activities, such as an updated game score or a new development in a breaking news story.
- [End Broadcast Live Activity](https://moengage.com/docs/api/live-activities/end-broadcast-live-activity.md): This API terminates a broadcast Live Activity across all subscribed devices simultaneously, with options for a final state update or immediate dismissal.

#### Personalize

- [Personalize Overview](https://moengage.com/docs/api/personalize-experience/personalize-overview.md): Fetch personalized content and report experience events from your server-side codebase.
- [Fetch Experience](https://moengage.com/docs/api/experiences/fetch-experience.md): This API receives data on active personalization experiences. You can fetch data for one or more server-side experiences by using the **experience_key** field. MoEngage will evaluate targeting rules and in-session attributes automatically and return the correct variation for the user. Typically, you…
- [Fetch Experience Metadata](https://moengage.com/docs/api/experiences/fetch-experience-metadata.md): This API fetches a list of currently Active, Scheduled, and Paused experiences within a workspace.
- [Track Experience Events](https://moengage.com/docs/api/events/track-experience-events.md): This API tracks impressions (shown) and user interactions (clicked) for accurate experience reporting. To report an impression or click for your experience via API, use the following endpoint.

#### Message Archival

- [Message Archival Overview](https://moengage.com/docs/api/message-archival/messaage-archival-overview.md): Retrieve and view archived copies of sent communication across Push, Email, and SMS.
- [View Archived Message](https://moengage.com/docs/api/message-archival/view-archived-message.md): Use this API to fetch (view) archived message content that was previously sent to customers.

## OpenAPI Specs

- [data](/docs/api/data/data.yaml)
- [gdpr-ccpa](/docs/api/gdpr-ccpa/gdpr-ccpa.yaml)
- [business-events-v5](/docs/api/business-events/business-events-v5/business-events-v5.yaml)
- [business-events](/docs/api/business-events/business-events-legacy/business-events.yaml)
- [in-app-templates](/docs/api/in-app-templates/in-app-templates.yaml)
- [osm-templates](/docs/api/osm-templates/osm-templates.yaml)
- [sms-templates](/docs/api/sms-templates/sms-templates.yaml)
- [email-templates-1](/docs/api/email-templates-1/email-templates-1.yaml)
- [email-templates-2](/docs/api/email-templates-2/email-templates-2.yaml)
- [push-templates](/docs/api/push-templates/push-templates.yaml)
- [content-blocks](/docs/api/content-blocks/content-blocks.yaml)
- [content-apis](/docs/api/content-apis/content-apis.yaml)
- [locales](/docs/api/locales/locales.yaml)
- [recommendations](/docs/api/recommendations/recommendations.yaml)
- [coupons](/docs/api/coupons/coupons.yaml)
- [catalog](/docs/api/catalog/catalog.yaml)
- [flows](/docs/api/flows/flows.yaml)
- [offerings](/docs/api/offerings/offerings.yaml)
- [campaign-draft](/docs/api/campaigns/campaign-draft.yaml)
- [campaigns](/docs/api/campaigns/campaigns.yaml)
- [stats-report](/docs/api/stats-report/stats-report.yaml)
- [analytics](/docs/api/analytics/analytics.yaml)
- [analytics-query](/docs/api/analytics-query/analytics-query.yaml)
- [custom-segments](/docs/api/custom-segments/custom-segments.yaml)
- [cohort-audience](/docs/api/cohort-audience/cohort-audience.yaml)
- [email-subscription](/docs/api/email-subscription/email-subscription.yaml)
- [subscription-categories](/docs/api/subscription-categories/subscription-categories.yaml)
- [push-v2-1](/docs/api/push/push-v2-1.yaml)
- [push](/docs/api/push/push.yaml)
- [cards](/docs/api/cards/cards.yaml)
- [inform](/docs/api/inform/inform.yaml)
- [live-activities](/docs/api/live-activities/live-activities.yaml)
- [personalize-experience](/docs/api/personalize-experience/personalize-experience.yaml)
- [message-archival](/docs/api/message-archival/message-archival.yaml)
