> ## Documentation Index
> Fetch the complete documentation index at: https://moengage-sdk-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Subscription Categories Overview

> Fetch and update email subscription preferences on your MoEngage dashboard using the MoEngage Subscription Categories API.

## Overview

The Subscription Categories APIs allow you to manage and synchronize user communication preferences across your systems and MoEngage. These endpoints support fetching individual settings, updating preferences via campaign interactions, and performing high-volume bulk updates. For more information on Subscription categories, refer to [Subscription Categories](https://help.moengage.com/hc/en-us/articles/11053939178004). 

## Subscription Categories Endpoints

* [Get Subscription Preferences](https://moengage.mintlify.app/api/subscription-preferences/get-subscription-preferences): Fetches the subscription category preferences information for a specific user.
* [Update Subscription Preferences](https://moengage.mintlify.app/api/subscription-preferences/update-subscription-preferences): Updates the subscription category preferences information for a specific user who navigates to the custom landing page from the email notification sent to them and updates their preferences.

  <Note>
    In this case, campaign ID information is required along with user ID.
  </Note>
* [Bulk Update Subscription Preferences](https://moengage.mintlify.app/api/subscription-preferences/bulk-update-subscription-preferences): Updates subscription category preferences in bulk. Use this API for updating the user preferences to MoEngage in large volumes.

## Rate Limits

To ensure system stability, the following rate limits are applied per workspace:

| Endpoint                                 | Limit                                       |
| :--------------------------------------- | :------------------------------------------ |
| **Get Subscription Preferences**         | The rate limit is 100 RPM and 360k per day. |
| **Update Subscription Preferences**      | The rate limit is 100 RPM and 360k per day. |
| **Bulk Update Subscription Preferences** | The rate limit is 100 RPM and 360k per day. |

## FAQs

### Get Subscription Preferences

<AccordionGroup>
  <Accordion title="How do we fetch the parameters to be passed in the request?" icon="sparkles">
    The user\_id (MoEngage ID) and the cid (Campaign ID) fields should be fetched from the landing page URL. For example, if the link to the custom landing page was `https://www.abc.com/managepreference`, when the user clicks the same from the email, the link will be as below:

    ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
    	https://www.abc.com/managepreference?user_id=7XvJW2dj3iS.rYAt4pg5ASBQtaqAMFDw9e89vZCXx_RFfN3eL0wBG008oI6cpncOQV6ESg&cid=5FGZGcA8FRv3Id89JCCczQjwxq6ApEyAarYDje2mzfRQ_WG7VyyFEc0w4L3MA.31a7wzR64fi7lfq8Km0AaeO4paGVul.4HxixDYnoUp21xyUjGtfvnrHSR2G1reTpYPHHU.r3Ac9vE&app_key=UY_GHXBXyaHbiYnCoNOu7eS.u5yIrrN3noTBNZX5mNSL4KN5C5PZ3zcXBKCCxl9w3m0ukw
    ```

    Here, you can parse and find user\_id and cid

    * user\_id is: 7XvJW2dj3iS.rYAt4pg5ASBQtaqAMFDw9e89vZCXx\_RFfN3eL0wBG008oI6cpncOQV6ESg
    * cid is: 5FGZGcA8FRv3Id89JCCczQjwxq6ApEyAarYDje2mzfRQ\_WG7VyyFEc0w4L3MA.31a7wzR64fi7lfq8Km0AaeO4paGVul.4HxixDYnoUp21xyUjGtfvnrHSR2G1reTpYPHHU.r3Ac9vE and pass the same while triggering the API.
  </Accordion>
</AccordionGroup>

### Update Subscription Preferences

<AccordionGroup>
  <Accordion title="How do we fetch the parameters to be passed in the request?" icon="sparkles">
    The user\_id (MoEngage ID) and the cid (Campaign ID) fields should be fetched from the landing page URL. For example, if the link to the custom landing page was `https://www.abc.com/managepreference`, when the user clicks the same from the email, the link will be as below:

    ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
    	https://www.abc.com/managepreference?user_id=7XvJW2dj3iS.rYAt4pg5ASBQtaqAMFDw9e89vZCXx_RFfN3eL0wBG008oI6cpncOQV6ESg&cid=5FGZGcA8FRv3Id89JCCczQjwxq6ApEyAarYDje2mzfRQ_WG7VyyFEc0w4L3MA.31a7wzR64fi7lfq8Km0AaeO4paGVul.4HxixDYnoUp21xyUjGtfvnrHSR2G1reTpYPHHU.r3Ac9vE&app_key=UY_GHXBXyaHbiYnCoNOu7eS.u5yIrrN3noTBNZX5mNSL4KN5C5PZ3zcXBKCCxl9w3m0ukw
    ```

    Here, you can parse and find user\_id and cid

    * user\_id is: 7XvJW2dj3iS.rYAt4pg5ASBQtaqAMFDw9e89vZCXx\_RFfN3eL0wBG008oI6cpncOQV6ESg
    * cid is: 5FGZGcA8FRv3Id89JCCczQjwxq6ApEyAarYDje2mzfRQ\_WG7VyyFEc0w4L3MA.31a7wzR64fi7lfq8Km0AaeO4paGVul.4HxixDYnoUp21xyUjGtfvnrHSR2G1reTpYPHHU.r3Ac9vE and pass the same while triggering the API.
  </Accordion>
</AccordionGroup>

**Bulk Update Subscription Preferences**

<Accordion title="What is the batch size for the bulk update?" icon="sparkles">
  The maximum batch size is 50.
</Accordion>

## Postman Collection

Test these endpoints quickly by importing our Postman collection: [**View in Postman**](https://www.postman.com/moengage-dev/api-docs/collection/30vndhm/moengage-subscription-categories-api)
