{ "message": "Your request has been processed successfully"}
Update User Email Opt-in Preferences
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).
The rate limit is 1000 RPM (requests per minute) and 360K requests per day.
If you use PII Tokenization for your emails, ensure you pass the user ID when calling the Email Opt-in Management API. MoEngage uses this user ID to locate the user and update their opt-in status. Passing the email ID is ineffective in this case, as MoEngage does not store it.If you use PII Encryption to send emails, ensure you pass either the user ID or the decrypted email ID. MoEngage uses this information to locate the associated user and update their opt-in status, or to update the opt-in status of all users having that email ID.
Authentication is done via Basic Auth. This requires a base64-encoded string of your credentials in the format 'username:password'.
Username: Use your MoEngage workspace ID (also known as the App ID). You can find it in the MoEngage dashboard at Settings > Account > APIs > Workspace ID (earlier app id).
Password: Use your API Key, which you can find within the Data tile.
For more information on authentication and getting your credentials, refer here.
This is the Workspace ID of your MoEngage account that must be passed with the request. You can find it in the MoEngage dashboard at Settings > Account > APIs > Workspace ID (earlier app id).
This is the project ID of your MoEngage account that must be passed with the request. You can find it in the MoEngage dashboard at Settings > Account > Portfolio > Project ID. Note: This parameter is mandatory for workspaces with the Portfolio feature enabled.
Body
application/json
The request body contains the user's email preference details encapsulated in a user_preferences object.
The main wrapper object for the user preferences payload.
The success message denoting the request was processed successfully.
Example:
"Your request has been processed successfully"
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"MoEngage","colors":{"primary":"#2E69FF","light":"#6691FF","dark":"#2554CC"},"logo":{"light":"https://mintcdn.com/moengage/VG5pJbeZsDUmdCZM/logo/light.svg?fit=max\u0026auto=format\u0026n=VG5pJbeZsDUmdCZM\u0026q=85\u0026s=28ca5909311cb6ffe01738e1503b5e64","dark":"https://mintcdn.com/moengage/VG5pJbeZsDUmdCZM/logo/dark.svg?fit=max\u0026auto=format\u0026n=VG5pJbeZsDUmdCZM\u0026q=85\u0026s=728a767d8fb8d3434575a28de18d08c5","href":"https://www.moengage.com/docs/"},"favicon":"https://mintcdn.com/moengage/bJi_ZHRHKldZCdcW/logo/favicon.svg?fit=max\u0026auto=format\u0026n=bJi_ZHRHKldZCdcW\u0026q=85\u0026s=9d13744d3b616913967983f324947bb5","api":{"examples":{"languages":["curl"]}},"appearance":{"default":"system"},"background":{"decoration":"gradient","color":{"light":"#FFFFFF","dark":"#121212"}},"navbar":{"links":[{"href":"/user-guide/contact-support/raise-a-support-ticket-through-moengage-dashboard","label":"Support"},{"href":"https://www.moengage.com/request-demo","label":"Request Demo"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.moengage.com/"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/moengage","x":"https://x.com/i/flow/login?redirect_after_login=%2Fmoengage","youtube":"https://www.youtube.com/c/MoEngage_Global","facebook":"https://www.facebook.com/moengage","github":"https://github.com/moengage"},"links":[{"header":"Support","items":[{"label":"Contact Support","href":"https://www.moengage.com/docs/user-guide/contact-support/raise-a-support-ticket-through-moengage-dashboard"},{"label":"AIRA Support Bot","href":"https://www.moengage.com/docs/user-guide/contact-support/aira-support-bot/aira-overview"},{"label":"Suggest a Feature","href":"https://www.moengage.com/docs/user-guide/contact-support/suggest-a-feature"},{"label":"System Status","href":"https://status.moengage.com"}]},{"header":"Learn","items":[{"label":"MoEngage Academy","href":"https://academy.moengage.com/student/catalog"},{"label":"Use Cases","href":"https://www.moengage.com/docs/use-cases/introduction"},{"label":"Release Notes","href":"https://www.moengage.com/docs/release-notes/subscribe-to-release-notes"},{"label":"Blog","href":"https://www.moengage.com/blog"}]},{"header":"For AI Tools","items":[{"label":"Setup Guide","href":"https://www.moengage.com/docs/documentation-access-to-agents"},{"label":"llms.txt","href":"https://www.moengage.com/docs/llms.txt"},{"label":"llms-full.txt","href":"https://www.moengage.com/docs/llms-full.txt"}]}]},"seo":{"metatags":{"google-site-verification":"ICNaPDX9oefbF09W1b5_U9PDnlkyfyKSRbIap6_dW6o"},"indexing":"all"},"fonts":{"heading":{"family":"circular","source":"https://app-cdn.moengage.com/images/Fonts/CircularXXWeb-Regular.woff2","format":"woff2"},"body":{"family":"circular","source":"https://app-cdn.moengage.com/images/Fonts/CircularXXWeb-Regular.woff2","format":"woff2"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"contextual":{"options":["copy","view","chatgpt","claude","cursor","vscode"],"display":"header"},"interaction":{"drilldown":true},"navigation":{"languages":[{"language":"en","href":""},{"language":"ja","href":"ja"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"moengage","hasAudioNarration":false,"actualSubdomain":"moengage","customDomains":["moengage.com"],"gitSource":{"type":"github","owner":"moengage","repo":"moengage-documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":false,"contextualFeedback":{"allowEmail":true},"issues":false,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aed9e350e1747ee9b9b0553","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"en","tag":"Guide","count":1188},{"language":"ja","tag":"ガイド","count":1180},{"language":"en","tag":"User Guide","count":799},{"language":"ja","tag":"ユーザーガイド","count":798},{"language":"en","tag":"Campaigns and Channels","count":437},{"language":"ja","tag":"キャンペーンとチャネル","count":437},{"language":"en","tag":"Partner Integrations","count":390},{"language":"ja","tag":"パートナー統合","count":383},{"language":"en","tag":"SDKs","count":338},{"language":"en","tag":"Developer Guide (SDKs)","count":327},{"language":"ja","tag":"SDK","count":308},{"language":"ja","tag":"開発者ガイド(SDK)","count":297},{"language":"en","tag":"Use Cases","count":218},{"language":"ja","tag":"ユースケース","count":218},{"language":"en","tag":"API Guide","count":183},{"language":"ja","tag":"APIガイド","count":183},{"language":"en","tag":"Endpoints","count":177},{"language":"ja","tag":"エンドポイント","count":177},{"language":"en","tag":"Release Notes","count":140},{"language":"ja","tag":"リリースノート","count":136}],"searchSettings":{"maxResults":8,"isFiltersEnabled":true}},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"deflection":{"enabled":false,"type":"email"}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"69a03c84f0b21f38ae93fdfb","deploymentId":"68bea8f8fe02728a34cf2acf","questionText":"How do I track user events?","status":"active","generatedBy":"manual","createdAt":"2026-02-26T12:28:52.454Z","updatedAt":"2026-02-26T12:28:52.454Z","__v":0}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","href":"/docs/_mintlify/custom/moengage/0a209f0cf9e21c6c/style.css"}],"page":{"pagePath":"api/opt-in-management/update-user-email-opt-in-preferences","slug":"/api/opt-in-management/update-user-email-opt-in-preferences","pageMetadata":{"title":"Update User Email Opt-in Preferences","description":"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).\n","deprecated":null,"version":null,"openapi":"/api/email-subscription/email-subscription.yaml put /v1.0/opt-in-management/user-preferences","href":"/api/opt-in-management/update-user-email-opt-in-preferences","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"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).\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading,Note}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`4`,id:`rate-limit`,children:`Rate Limit`}),`\n`,_jsxs(_components.p,{children:[`The rate limit is `,_jsx(_components.strong,{children:`1000 RPM`}),` (requests per minute) and `,_jsx(_components.strong,{children:`360K`}),` requests per day.`]}),`\n`,_jsxs(Note,{children:[_jsx(_components.p,{children:`If you use PII Tokenization for your emails, ensure you pass the user ID when calling the Email Opt-in Management API. MoEngage uses this user ID to locate the user and update their opt-in status. Passing the email ID is ineffective in this case, as MoEngage does not store it.`}),_jsx(_components.p,{children:`If you use PII Encryption to send emails, ensure you pass either the user ID or the decrypted email ID. MoEngage uses this information to locate the associated user and update their opt-in status, or to update the opt-in status of all users having that email ID.`})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update User Email Opt-in Preferences","description":"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).\n","deprecated":null,"version":null,"openapi":"/api/email-subscription/email-subscription.yaml put /v1.0/opt-in-management/user-preferences","href":"/api/opt-in-management/update-user-email-opt-in-preferences","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Rate Limit","slug":"rate-limit","depth":4,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/moengage/992523b3cb2256cd/script.js"],"openApiReferenceData":{"operation":{"tags":["Opt-in Management"],"summary":"Update User Email Opt-in Preferences","description":"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).\n","operationId":"updateEmailOptinPreferences","x-mint":{"content":"#### Rate Limit\nThe rate limit is **1000 RPM** (requests per minute) and **360K** requests per day.\n\n\u003cNote>\nIf you use PII Tokenization for your emails, ensure you pass the user ID when calling the Email Opt-in Management API. MoEngage uses this user ID to locate the user and update their opt-in status. Passing the email ID is ineffective in this case, as MoEngage does not store it.\n\nIf you use PII Encryption to send emails, ensure you pass either the user ID or the decrypted email ID. MoEngage uses this information to locate the associated user and update their opt-in status, or to update the opt-in status of all users having that email ID.\n\u003c/Note>\n"},"parameters":["0bad2586-68d6-4d1c-b9e7-d7ebfd8aa8d1","658d57f0-5957-4533-b137-6c9857bf57cd"],"requestBody":"8eb0f3e3-7f9a-4847-b360-acd65c116fc9","responses":{"200":"4f4a048e-bc6b-445f-8e8a-73b49031a600","400":"8395eee7-f6b7-41e0-8685-c177163b2f3c","401":"9f21a013-e4ae-4a49-9cb2-806b57a0a4cf","403":"dd0225f9-c798-42ae-a9b6-47a1e3503248","429":"8ead0701-9ec2-4e45-b319-d2fb8f25c422","500":"c4ab2131-7d8d-4aa9-a8f0-2247c0aea3d6"},"method":"put","type":"path","servers":["cb888750-762f-4df9-97a3-fa45e64177e0"],"security":["e5458bf4-7971-4d9e-af48-73f583ddadfa"],"path":"/v1.0/opt-in-management/user-preferences","baseUrlOptions":["https://api-{dc}.moengage.com"],"title":"Update User Email Opt-in Preferences","codeSamples":[],"requestExampleLanguages":["bash"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"0bad2586-68d6-4d1c-b9e7-d7ebfd8aa8d1":{"name":"MOE-APPKEY","in":"header","required":true,"schema":{"type":"string","isRequired":true,"description":"This is the Workspace ID of your MoEngage account that must be passed with the request. You can find it in the MoEngage dashboard at **Settings** > **Account** > **APIs** > **Workspace ID (earlier app id)**.\n","uniqueKey":"","typeLabel":"string"},"description":"This is the Workspace ID of your MoEngage account that must be passed with the request. You can find it in the MoEngage dashboard at **Settings** > **Account** > **APIs** > **Workspace ID (earlier app id)**.\n","example":"YOUR_WORKSPACE_ID"},"658d57f0-5957-4533-b137-6c9857bf57cd":{"name":"MOE-PROJECT-CODE","in":"header","schema":{"type":"string","description":"This is the project ID of your MoEngage account that must be passed with the request. You can find it in the MoEngage dashboard at **Settings** > **Account** > **Portfolio** > **Project ID**. **Note**: This parameter is mandatory for workspaces with the [Portfolio](https://www.moengage.com/docs/user-guide/settings/account/portfolio/portfolio) feature enabled.\n","uniqueKey":"","typeLabel":"string"},"description":"This is the project ID of your MoEngage account that must be passed with the request. You can find it in the MoEngage dashboard at **Settings** > **Account** > **Portfolio** > **Project ID**. **Note**: This parameter is mandatory for workspaces with the [Portfolio](https://www.moengage.com/docs/user-guide/settings/account/portfolio/portfolio) feature enabled.\n","example":"YOUR_PROJECT_ID_XXXX"}},"requestBody":{"description":"The request body contains the user's email preference details encapsulated in a `user_preferences` object.","required":true,"content":{"application/json":{"schema":{"type":"object","description":"The main wrapper object for the user preferences payload.","required":["user_preferences"],"properties":{"user_preferences":{"type":"object","description":"Contains the user's opt-in preferences. Must contain either `customer_id` or `email_id`.\n","required":["opt_in_status","channel"],"properties":{"opt_in_status":{"type":"string","description":"The user's overall email opt-in status.\n\nNote:\nThis field is case-insensitive, but ensure that you follow the same format as in the example.\nYou can pass both `categories` and `opt_in_status`. In this case, if all category values are `false` and `opt_in_status` is `DOUBLE_OPTED_IN`, MoEngage gives high priority to category-level information and the opt-in status is updated as `OPTED_OUT`.\n","enum":["DOUBLE_OPTED_IN","OPTED_OUT","OPT_IN_PENDING"],"example":"DOUBLE_OPTED_IN","isRequired":true,"uniqueKey":"user_preferences.opt_in_status","typeLabel":"enum\u003cstring>"},"channel":{"type":"string","description":"The channel for which the opt-in status applies. Currently, only **email** is supported.","enum":["email"],"example":"email","isRequired":true,"uniqueKey":"user_preferences.channel","typeLabel":"enum\u003cstring>"},"customer_id":{"type":"string","description":"Unique identifier for the user in MoEngage. Optional, if `email_id` is passed.\n\nTo avoid error, make sure you pass either `customer_id` or `email_id`.\nIf you are passing `customer_id`, `email_id` is not mandatory. \nIf you pass only `customer_id`, MoEngage finds the user with this `customer_id` and updates the opt-in status accordingly.\nGenerally, when `email_id` is passed, MoEngage finds all users with this `email_id` and updates the opt-in status accordingly. But if you don't want all the users with this `email_id` to be updated, you can contact the MoEngage team.\n`customer_id` is mandatory if you don't want to pass the opt-in status update to all users with the same email ID.\n","example":"ID_uid","uniqueKey":"user_preferences.customer_id","typeLabel":"string"},"email_id":{"type":"string","format":"email","description":"Email ID of the user. Optional if `customer_id` is provided.\n\nIf only `email_id` is provided, all users with this email may be updated (contact MoEngage support to configure behavior).\n\nTo avoid error, make sure you pass `customer_id` or `email_id`.\nIf you are passing `email_id`, `customer_id` is not mandatory.\nIf you pass only `email_id`, MoEngage finds all the users with this `email_id` and updates the opt-in status accordingly.\nYou can also pass both `customer_id` and `email_id`. In this case, `email_id` is given the highest priority, and MoEngage finds all users with this `email_id` and updates the opt-in status accordingly.\nYou can contact the MoEngage team if you don't want to update the opt-in status of all users with the same email ID.\n","example":"[email protected]","uniqueKey":"user_preferences.email_id","typeLabel":"string\u003cemail>"},"categories":{"type":"object","description":"Subscription status for defined categories in your dashboard.\n\nKeys are category names, values are boolean (`true`=subscribed). If even one category is invalid/inactive, the entire request will fail.\n\n**Note**: If this is passed and all category values are `false`, the overall `opt_in_status` will be overridden to **OPTED_OUT** even if `DOUBLE_OPTED_IN` is passed.\n","additionalProperties":{"type":"boolean","uniqueKey":"user_preferences.categories.additionalProperties","typeLabel":"boolean"},"example":{"category_1":true,"category_2":false},"uniqueKey":"user_preferences.categories","typeLabel":"object"}},"isRequired":true,"uniqueKey":"user_preferences","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"user_preferences":{"customer_id":"ID_uid","email_id":"[email protected]","categories":{"category_1":true,"category_2":false},"opt_in_status":"DOUBLE_OPTED_IN","channel":"email"}},"examples":{"Example":{"title":"Example","value":{"user_preferences":{"customer_id":"ID_uid","email_id":"[email protected]","categories":{"category_1":true,"category_2":false},"opt_in_status":"DOUBLE_OPTED_IN","channel":"email"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"4f4a048e-bc6b-445f-8e8a-73b49031a600":{"description":"The request has been processed successfully.","content":{"application/json":{"schema":{"type":"object","description":"Success response body for the Opt-in Management API (200 OK).","properties":{"message":{"type":"string","description":"The success message denoting the request was processed successfully.","example":"Your request has been processed successfully","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"message":"Your request has been processed successfully"},"examples":{"Example":{"title":"Example","value":{"message":"Your request has been processed successfully"}}},"exampleType":"examples"}},"exampleType":"examples"},"8395eee7-f6b7-41e0-8685-c177163b2f3c":{"description":"Bad Request. Returned when required parameters are missing, incorrect data types are used, invalid values are passed (e.g., invalid `opt_in_status`), the user is not found, or project code missing for Portfolio enabled workspaces.","content":{"application/json":{"schema":{"type":"object","description":"This response is returned when the required parameters are missing from the request, attributes are not found, or incorrect values are passed.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"The HTTP status code and text (e.g., '400 Bad Request').","example":"400 Bad Request","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A brief message denoting the type of error.","example":"Request Data is invalid.","uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Contains granular error information including the target field and a detailed error message.","properties":{"target":{"type":"string","description":"The field where the error occurred (e.g., `customer_id`).","example":"customer_id","uniqueKey":"error.details.target","typeLabel":"string"},"message":{"type":"string","description":"The details of the error message.","example":"Wrong data type was used for \u003ccustomer_id>...","uniqueKey":"error.details.message","typeLabel":"string"}},"uniqueKey":"error.details","typeLabel":"object"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"invalidDataType":{"title":"invalidDataType","value":{"error":{"code":"400 Bad Request","message":"Request Data is invalid.","details":{"target":"customer_id","message":"Wrong data type was used for \u003ccustomer_id> - Value must be of type (\u003cclass 'str'>,), passed type: \u003cclass 'bool'> : False."}}}},"invalidOptInStatus":{"title":"invalidOptInStatus","value":{"error":{"code":"400 Bad Request","message":"Request Data is invalid","details":{"target":"opt_in_status","message":"Opt-In status can only be 'DOUBLE_OPTED_IN' or 'OPTED_OUT' or 'OPT_IN_PENDING' (case-insensitive). Please provide the correct value."}}}},"missingIdOrEmail":{"title":"missingIdOrEmail","value":{"error":{"code":"400 Bad Request","message":"Request Data is invalid","details":{"target":"customer_id or email_id","message":"Either customer_id or email_id is mandatory. Please provide at least one of them."}}}},"userNotFound":{"title":"userNotFound","value":{"error":{"code":"400 Bad Request","message":"Request Data is invalid","details":{"target":"customer_id or email_id","message":"No users found with the provided customer_id or email_id. Please check the same."}}}},"invalidCategory":{"title":"invalidCategory","value":{"error":{"code":"400 Bad Request","message":"Request Data is invalid","details":{"target":"categories","message":"Categories A, B, C are either invalid or not active in the Workspace. Please check the categories in the request."}}}},"extraKey":{"title":"extraKey","value":{"error":{"code":"400 Bad Request","message":"Request Data is invalid","details":{"target":"['customerid']","message":"Extra key passed in the request"}}}},"invalidChannel":{"title":"invalidChannel","value":{"error":{"code":"400 Bad Request","message":"Request Data is invalid","details":{"target":"channel","message":"Channel can only be ['email'] (case-insensitive). Please provide the correct channel."}}}},"customerIdMandatory":{"title":"customerIdMandatory","value":{"error":{"code":"400 Bad Request","message":"Request Data is invalid","details":{"target":"customer_id","message":"customer_id is mandatory when unsubscribe on email is not enabled."}}}},"noActiveCategories":{"title":"noActiveCategories","value":{"error":{"code":"400 Bad Request","message":"Request Data is invalid","details":{"target":"categories","message":"There are no active categories found. Please remove the categories from the request data or setup the subscription categories in MoEngage Email settings."}}}},"allCategoriesInvalid":{"title":"allCategoriesInvalid","value":{"error":{"code":"400 Bad Request","message":"Request Data is invalid","details":{"target":"categories","message":"All provided categories are either invalid or not active in the Workspace. Please check the categories in the request."}}}},"sentryCheckFailed":{"title":"sentryCheckFailed","value":{"message":"Sentry check failed"}},"missingProjectCode":{"title":"missingProjectCode","value":{"error":{"code":"400 Bad Request","message":"Invalid Header","details":{"target":"MOE-PROJECT-CODE","message":"MOE-PROJECT-CODE header missing in request."}}}}},"exampleType":"examples"}},"exampleType":"examples"},"9f21a013-e4ae-4a49-9cb2-806b57a0a4cf":{"description":"Unauthorized. Authentication failed (e.g., missing Authorization header, wrong Workspace ID, or wrong Data API Key).","content":{"application/json":{"schema":{"type":"object","description":"This response is returned when the request does not have valid authentication credentials.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"The HTTP status code and text (e.g., '401 Unauthorized').","example":"401 Unauthorized","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A brief message denoting the type of error.","example":"Invalid API Key provided.","uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Contains granular error information including the target field and a detailed error message.","properties":{"target":{"type":"string","description":"The authentication scheme or header.","example":"Authorization Header","uniqueKey":"error.details.target","typeLabel":"string"},"message":{"type":"string","description":"The details of the error message.","example":"Authentication failed due to missing or invalid credentials.","uniqueKey":"error.details.message","typeLabel":"string"}},"uniqueKey":"error.details","typeLabel":"object"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missingAuthHeader":{"title":"missingAuthHeader","value":{"error":{"code":"401 Unauthorized","message":"Authentication failed.","details":{"target":"Authorization Header","message":"Authorization header is missing"}}}},"wrongDataKey":{"title":"wrongDataKey","value":{"error":{"code":"401 Unauthorized","message":"Authentication failed","details":{"target":"Data key","message":"Data API key is wrong. Please provide correct Data API Key as password."}}}}},"exampleType":"examples"}},"exampleType":"examples"},"dd0225f9-c798-42ae-a9b6-47a1e3503248":{"description":"Forbidden. Returned when the Email Opt-in Management feature is not enabled for the workspace.","content":{"application/json":{"schema":{"type":"object","description":"This response is returned when the Email Opt-in Management feature is not enabled for the workspace.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"The HTTP status code and text (e.g., '403 Forbidden').","example":"403 Forbidden","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A brief message denoting the type of error.","example":"Feature not enabled for workspace.","uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Contains granular error information including the target field and a detailed error message.","properties":{"target":{"type":"string","description":"The resource or feature that is forbidden.","example":"Email Opt-in Management","uniqueKey":"error.details.target","typeLabel":"string"},"message":{"type":"string","description":"The details of the error message.","example":"Access to the Email Opt-in Management API is forbidden. Please enable the feature in your workspace settings.","uniqueKey":"error.details.message","typeLabel":"string"}},"uniqueKey":"error.details","typeLabel":"object"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"403 Forbidden","message":"Feature not enabled","details":{"target":"Email Opt-in Management","message":"Email Opt-in Management feature not enabled for the workspace. Please reach out to MoEngage to get it enabled."}}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"403 Forbidden","message":"Feature not enabled","details":{"target":"Email Opt-in Management","message":"Email Opt-in Management feature not enabled for the workspace. Please reach out to MoEngage to get it enabled."}}}}},"exampleType":"examples"}},"exampleType":"examples"},"8ead0701-9ec2-4e45-b319-d2fb8f25c422":{"description":"Too Many Requests. The request rate has exceeded the limit of 1000 RPM or 360K per day.","content":{"application/json":{"schema":{"description":"There is no response body for this error.","uniqueKey":"","typeLabel":"any"},"examples":{"Example":{"title":"Example","value":"\u003cunknown>"}},"exampleType":"generated"}},"exampleType":"generated"},"c4ab2131-7d8d-4aa9-a8f0-2247c0aea3d6":{"description":"Internal Server Error.","content":{"application/json":{"schema":{"type":"object","description":"Error response body for Internal Server Error (500).","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"500 Internal Server Error","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Something went wrong, Please contact MoEngage Team.","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"500 Internal Server Error","message":"Something went wrong, Please contact MoEngage Team."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"500 Internal Server Error","message":"Something went wrong, Please contact MoEngage Team."}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"e5458bf4-7971-4d9e-af48-73f583ddadfa":{"basicAuth":{"type":"http","scheme":"basic","description":"Authentication is done via Basic Auth. This requires a base64-encoded string of your credentials in the format 'username:password'.\n\n- **Username**: Use your MoEngage workspace ID (also known as the App ID). You can find it in the MoEngage dashboard at **Settings** > **Account** > **APIs** > **Workspace ID (earlier app id)**.\n- **Password**: Use your API Key, which you can find within the **Data** tile.\n\nFor more information on authentication and getting your credentials, refer [here](https://www.moengage.com/docs/api/introduction#getting-your-credentials).\n","scopes":[],"schemeName":"basicAuth"}}},"servers":{"cb888750-762f-4df9-97a3-fa45e64177e0":{"url":"https://api-{dc}.moengage.com","description":"MoEngage API Server","variables":{"dc":{"default":"01","description":"The ‘dc’ in the API Endpoint URL refers to the MoEngage Data Center (DC). MoEngage hosts each customer in a different DC. You can find your DC number and replace the value of ‘dc’ in the URL by referring to the DC and API endpoint mapping [here](/api/introduction#data-centers). Your MoEngage Data Center (DC) can be 01, 02, 03, 04, 05, 06, or 101."}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"basic","description":"Authentication is done via Basic Auth. This requires a base64-encoded string of your credentials in the format 'username:password'.\n\n- **Username**: Use your MoEngage workspace ID (also known as the App ID). You can find it in the MoEngage dashboard at **Settings** > **Account** > **APIs** > **Workspace ID (earlier app id)**.\n- **Password**: Use your API Key, which you can find within the **Data** tile.\n\nFor more information on authentication and getting your credentials, refer [here](https://www.moengage.com/docs/api/introduction#getting-your-credentials).\n","scopes":[],"schemeName":"basicAuth"},"schema":{"title":"Basic Auth","type":"object","description":"Authentication is done via Basic Auth. This requires a base64-encoded string of your credentials in the format 'username:password'.\n\n- **Username**: Use your MoEngage workspace ID (also known as the App ID). You can find it in the MoEngage dashboard at **Settings** > **Account** > **APIs** > **Workspace ID (earlier app id)**.\n- **Password**: Use your API Key, which you can find within the **Data** tile.\n\nFor more information on authentication and getting your credentials, refer [here](https://www.moengage.com/docs/api/introduction#getting-your-credentials).\n","isRequired":true,"properties":{"username":{"type":"string","uniqueKey":"username","isRequired":true,"typeLabel":"string","deprecated":false},"password":{"type":"string","uniqueKey":"password","isRequired":true,"typeLabel":"string","deprecated":false}},"additionalProperties":false,"deprecated":false},"schemeName":"basicAuth","name":"Authorization"}],"title":"basicAuth"}]},"originalFileLocation":"api/email-subscription/email-subscription.yaml"},"subdomain":"moengage","siteName":"MoEngage","title":"Update User Email Opt-in Preferences - MoEngage","relatedPagesConfig":{"enabled":false,"limit":3,"mode":"manual"},"contextualStarterQuestions":[{"_id":"69b015b87104f9460ee446e3","deploymentId":"68bea8f8fe02728a34cf2acf","questionText":"When should I use user ID vs email?","status":"active","generatedBy":"contextual","path":"api/opt-in-management/update-user-email-opt-in-preferences","createdAt":"2026-03-10T12:59:36.421Z","updatedAt":"2026-03-10T12:59:36.421Z","__v":0},{"_id":"69b015b87104f9460ee446e2","deploymentId":"68bea8f8fe02728a34cf2acf","questionText":"How do I update email preferences?","status":"active","generatedBy":"contextual","path":"api/opt-in-management/update-user-email-opt-in-preferences","createdAt":"2026-03-10T12:59:36.421Z","updatedAt":"2026-03-10T12:59:36.421Z","__v":0},{"_id":"69b015b87104f9460ee446e1","deploymentId":"68bea8f8fe02728a34cf2acf","questionText":"What's the rate limit for this API?","status":"active","generatedBy":"contextual","path":"api/opt-in-management/update-user-email-opt-in-preferences","createdAt":"2026-03-10T12:59:36.421Z","updatedAt":"2026-03-10T12:59:36.421Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api/opt-in-management/update-user-email-opt-in-preferences","matchLevel":0},"ja":{"href":"/ja/api/opt-in-management/update-user-email-opt-in-preferences","matchLevel":1}}},"lastModified":"2026-10-22T05:20:51.952Z","originalFileLocation":"api/opt-in-management/update-user-email-opt-in-preferences.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"This API updates a user\u0026#x27;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).\">\u003cmeta data-mint-head name=\"application-name\" content=\"MoEngage\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update User Email Opt-in Preferences - MoEngage\">\u003cmeta data-mint-head property=\"og:description\" content=\"This API updates a user\u0026#x27;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).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"MoEngage\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://moengage.mintlify.site/docs/_mintlify/api/og/v2?division=Email+Subscription\u0026amp;title=Update+User+Email+Opt-in+Preferences\u0026amp;description=This+API+updates+a+user%27s+overall+email+opt-in+status+and%2For+category-level+subscription+preferences+within+MoEngage.+This+API+is+typically+used+after+a+user+su\u0026amp;theme=c3ae899dab8a83c2adcd0e76\u0026amp;signature=72607b4812cebe25cdee9ff3d7200879a60244c0fd3a5c0b95304bc6bc02245f\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update User Email Opt-in Preferences - MoEngage\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This API updates a user\u0026#x27;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).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://moengage.mintlify.site/docs/_mintlify/api/og/v2?division=Email+Subscription\u0026amp;title=Update+User+Email+Opt-in+Preferences\u0026amp;description=This+API+updates+a+user%27s+overall+email+opt-in+status+and%2For+category-level+subscription+preferences+within+MoEngage.+This+API+is+typically+used+after+a+user+su\u0026amp;theme=c3ae899dab8a83c2adcd0e76\u0026amp;signature=72607b4812cebe25cdee9ff3d7200879a60244c0fd3a5c0b95304bc6bc02245f\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"MoEngage\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2E69FF\">\u003cmeta data-mint-head name=\"google-site-verification\" content=\"ICNaPDX9oefbF09W1b5_U9PDnlkyfyKSRbIap6_dW6o\">\u003clink data-mint-head rel=\"canonical\" href=\"https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api/opt-in-management/update-user-email-opt-in-preferences.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://moengage.com/docs/ja/api/opt-in-management/update-user-email-opt-in-preferences\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://moengage.com/#organization\",\"name\":\"MoEngage\",\"url\":\"https://moengage.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/moengage/VG5pJbeZsDUmdCZM/logo/light.svg?fit=max\u0026auto=format\u0026n=VG5pJbeZsDUmdCZM\u0026q=85\u0026s=28ca5909311cb6ffe01738e1503b5e64\"}},{\"@type\":\"WebSite\",\"@id\":\"https://moengage.com/docs#website\",\"name\":\"MoEngage\",\"url\":\"https://moengage.com/docs\",\"publisher\":{\"@id\":\"https://moengage.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences#webpage\",\"url\":\"https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences\",\"name\":\"Update User Email Opt-in Preferences\",\"description\":\"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).\",\"dateModified\":\"2026-10-22T05:20:51.952Z\",\"isPartOf\":{\"@id\":\"https://moengage.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://moengage.com/docs/api/data/data-overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Subscriptions\",\"item\":\"https://moengage.com/docs/api/email-subscription/email-subscription-overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Email Subscription\",\"item\":\"https://moengage.com/docs/api/email-subscription/email-subscription-overview\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Update User Email Opt-in Preferences\",\"item\":\"https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences#apireference\",\"headline\":\"Update User Email Opt-in Preferences\",\"name\":\"Update User Email Opt-in Preferences\",\"description\":\"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).\",\"url\":\"https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences\",\"mainEntityOfPage\":{\"@id\":\"https://moengage.com/docs/api/opt-in-management/update-user-email-opt-in-preferences#webpage\"},\"dateModified\":\"2026-10-22T05:20:51.952Z\",\"publisher\":{\"@id\":\"https://moengage.com/#organization\"},\"isPartOf\":{\"@id\":\"https://moengage.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"MoEngage\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"MoEngage","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"User Guide","pages":[{"title":"User Guide","href":"/user-guide/introduction"}]},{"tab":"Developer Guide (SDKs)","pages":[{"title":"Developer Guide (SDKs)","href":"/developer-guide/introduction"}]},{"tab":"API Guide","groups":[{"group":"API Documentation","pages":[{"title":"API Documentation","sidebarTitle":"Overview","icon":"rocket","href":"/api/introduction"},{"group":"Authentication","icon":"key","pages":[{"group":"OAuth 2.0","pages":[{"title":"OAuth 2.0 Overview","icon":"file-magnifying-glass","href":"/api/oauth/oauth-overview"},{"title":"Generate Access Token","deprecated":null,"version":null,"openapi":"/api/oauth/oauth.yaml post /v1/oauth/token","href":"/api/oauth/generate-access-token"},{"title":"Refresh Access Token","deprecated":null,"version":null,"openapi":"/api/oauth/oauth.yaml post /v1/oauth/refresh","href":"/api/oauth/refresh-access-token"}]},{"title":"AWS STS Auth","href":"/api/aws-sts/aws-sts-overview"}]},{"title":"Rate Limits","icon":"gauge","href":"/api/rate-limits"}]},{"group":"Endpoints","icon":"code","pages":[{"group":"Data","icon":"database","pages":[{"title":"Data Overview","icon":"file-magnifying-glass","href":"/api/data/data-overview"},{"group":"User","icon":"user","pages":[{"title":"Track User","deprecated":null,"version":null,"openapi":"/api/data/data.yaml post /customer/{app_id}","href":"/api/user/track-user"},{"title":"Get User","deprecated":null,"version":null,"openapi":"/api/data/data.yaml post /customers/export","href":"/api/user/get-user"},{"title":"Merge Users","deprecated":null,"version":null,"openapi":"/api/data/data.yaml post /customer/merge","href":"/api/user/merge-users"},{"title":"Delete Users","deprecated":null,"version":null,"openapi":"/api/data/data.yaml post /customer/delete","href":"/api/user/delete-users"}]},{"group":"Event","icon":"calendar","pages":[{"title":"Track Event","deprecated":null,"version":null,"openapi":"/api/data/data.yaml post /event/{Workspace_ID}","href":"/api/event/track-event"}]},{"group":"Bulk","icon":"layer-group","pages":[{"title":"Bulk Import Users and Events","deprecated":null,"version":null,"openapi":"/api/data/data.yaml post /transition/{Workspace_ID}","href":"/api/bulk/bulk-import-users-and-events"}]},{"group":"Device","icon":"mobile","pages":[{"title":"Track Device","deprecated":null,"version":null,"openapi":"/api/data/data.yaml post /device/{app_id}","href":"/api/device/track-device"},{"title":"Device Opt-out","deprecated":null,"version":null,"openapi":"/api/data/data.yaml post /devices/manage","href":"/api/device/device-opt-out"}]},{"group":"File Import","icon":"file-import","pages":[{"title":"File Import Overview","icon":"file-magnifying-glass","href":"/api/data/file-import-overview"},{"title":"Trigger File Imports","deprecated":null,"version":null,"openapi":"/api/data/data.yaml post /fileimports/trigger/{schedule_id}","href":"/api/file-import/trigger-file-imports"},{"title":"Import Details","deprecated":null,"version":null,"openapi":"/api/data/data.yaml post /fileimports/import/status","href":"/api/file-import/import-details"},{"title":"Import File Run History","deprecated":null,"version":null,"openapi":"/api/data/data.yaml post /fileimports/import/run/history","href":"/api/file-import/import-file-run-history"}]},{"group":"Tracking","icon":"chart-line","pages":[{"title":"Track App Install","deprecated":null,"version":null,"openapi":"/api/data/data.yaml get /installInfo","href":"/api/tracking/track-app-install"}]},{"group":"Utilities","icon":"wrench","pages":[{"title":"Test Connection API","deprecated":null,"version":null,"openapi":"/api/data/data.yaml post /integrations/authentication","href":"/api/utilities/test-connection-api"}]},{"title":"Streams","icon":"webhook","href":"/api/data/moengage-streams"},{"group":"GDPR/CCPA","icon":"shield-check","pages":[{"title":"GDPR or CCPA Overview","icon":"file-magnifying-glass","href":"/api/gdpr-ccpa/gdpr-ccpa-overview"},{"title":"Submit a GDPR / CCPA Data Request","deprecated":null,"version":null,"openapi":"/api/gdpr-ccpa/gdpr-ccpa.yaml post /opengdpr_requests/{appId}","href":"/api/gdpr/submit-a-gdpr-ccpa-data-request"}]}]},{"group":"Business Events","icon":"calendar-check","pages":[{"group":"Business Events (V5)","icon":"bolt","pages":[{"title":"Business Events API (V5): Overview","icon":"bolt","href":"/api/business-events/business-events-v5/business-events-v5-overview"},{"title":"Trigger Business Event (V5)","deprecated":null,"version":null,"openapi":"/api/business-events/business-events-v5/business-events-v5.yaml post /v5/business-events/triggers","href":"/api/business-events/trigger-business-event-v5"},{"title":"List Business Events","deprecated":null,"version":null,"openapi":"/api/business-events/business-events-v5/business-events-v5.yaml get /v5/business-events","href":"/api/business-events/list-business-events"},{"title":"Search Business Events (V5)","deprecated":null,"version":null,"openapi":"/api/business-events/business-events-v5/business-events-v5.yaml post /v5/business-events/search","href":"/api/business-events/search-business-events-v5"}]},{"group":"Business Events (Legacy)","icon":"clock-rotate-left","pages":[{"title":"Business Events API (Legacy): Overview","icon":"clock-rotate-left","href":"/api/business-events/business-events-legacy/business-events-overview"},{"title":"Create Business Event","deprecated":null,"version":null,"openapi":"/api/business-events/business-events-legacy/business-events.yaml post /business_event","href":"/api/business-events/create-business-event"},{"title":"Trigger Business Event","deprecated":null,"version":null,"openapi":"/api/business-events/business-events-legacy/business-events.yaml post /business_event/trigger","href":"/api/business-events/trigger-business-event"},{"title":"Search Business Events","deprecated":null,"version":null,"openapi":"/api/business-events/business-events-legacy/business-events.yaml post /business_event/search","href":"/api/business-events/search-business-events"}]}]},{"group":"Content","icon":"file-lines","pages":[{"group":"Templates","icon":"rectangle-list","pages":[{"group":"Custom In-App Templates","icon":"mobile-screen","pages":[{"title":"In-app Templates Overview","icon":"file-magnifying-glass","href":"/api/in-app-templates/in-app-templates-overview"},{"title":"Create In-app Template","deprecated":null,"version":null,"openapi":"/api/in-app-templates/in-app-templates.yaml post /custom-templates/inapp","href":"/api/in-app-templates/create-in-app-template"},{"title":"Update In-app Template","deprecated":null,"version":null,"openapi":"/api/in-app-templates/in-app-templates.yaml put /custom-templates/inapp","href":"/api/in-app-templates/update-in-app-template"},{"title":"Search In-app Templates","deprecated":null,"version":null,"openapi":"/api/in-app-templates/in-app-templates.yaml post /custom-templates/inapp/search","href":"/api/in-app-templates/search-in-app-templates"}]},{"group":"Custom OSM Templates","icon":"window-restore","pages":[{"title":"OSM Templates Overview","icon":"file-magnifying-glass","href":"/api/osm-templates/osm-templates-overview"},{"title":"Create OSM Template","deprecated":null,"version":null,"openapi":"/api/osm-templates/osm-templates.yaml post /custom-templates/osm","href":"/api/osm-templates/create-osm-template"},{"title":"Update OSM Template","deprecated":null,"version":null,"openapi":"/api/osm-templates/osm-templates.yaml put /custom-templates/osm","href":"/api/osm-templates/update-osm-template"},{"title":"Search OSM Templates","deprecated":null,"version":null,"openapi":"/api/osm-templates/osm-templates.yaml post /custom-templates/osm/search","href":"/api/osm-templates/search-osm-templates"}]},{"group":"Custom SMS Templates","icon":"comment-sms","pages":[{"title":"SMS Templates Overview","icon":"file-magnifying-glass","href":"/api/sms-templates/sms-templates-overview"},{"title":"Create SMS Template","deprecated":null,"version":null,"openapi":"/api/sms-templates/sms-templates.yaml post /custom-templates/sms","href":"/api/sms-templates/create-sms-template"},{"title":"Update SMS Template","deprecated":null,"version":null,"openapi":"/api/sms-templates/sms-templates.yaml put /custom-templates/sms","href":"/api/sms-templates/update-sms-template"},{"title":"Search SMS Templates","deprecated":null,"version":null,"openapi":"/api/sms-templates/sms-templates.yaml post /custom-templates/sms/search","href":"/api/sms-templates/search-sms-templates"}]},{"group":"Custom Email Templates V1","icon":"envelope-open-text","pages":[{"title":"Email Templates (V1) Overview","icon":"file-magnifying-glass","href":"/api/email-templates-1/email-templates-1-overview"},{"title":"Create Email Template (V1)","deprecated":null,"version":null,"openapi":"/api/email-templates-1/email-templates-1.yaml post /email-templates","href":"/api/email-templates/create-email-template-v1"},{"title":"Get All Templates","deprecated":null,"version":null,"openapi":"/api/email-templates-1/email-templates-1.yaml get /email-templates","href":"/api/email-templates/get-all-templates"},{"title":"Get Specific Template","deprecated":null,"version":null,"openapi":"/api/email-templates-1/email-templates-1.yaml get /email-templates/{id}","href":"/api/email-templates/get-specific-template"},{"title":"Update Specific Template","deprecated":null,"version":null,"openapi":"/api/email-templates-1/email-templates-1.yaml put /email-templates/{id}","href":"/api/email-templates/update-specific-template"},{"title":"Bulk Create/Update Templates","deprecated":null,"version":null,"openapi":"/api/email-templates-1/email-templates-1.yaml put /bulk/email-templates","href":"/api/email-templates/bulk-createupdate-templates"}]},{"group":"Custom Email Templates V2","icon":"envelope","pages":[{"title":"Email Templates (V2) Overview","icon":"file-magnifying-glass","href":"/api/email-templates-2/email-templates-2-overview"},{"title":"Create Email Template (V2)","deprecated":null,"version":null,"openapi":"/api/email-templates-2/email-templates-2.yaml post /custom-templates/email","href":"/api/email-templates/create-email-template-v2"},{"title":"Search Email Template","deprecated":null,"version":null,"openapi":"/api/email-templates-2/email-templates-2.yaml post /custom-templates/email/search","href":"/api/email-templates/search-email-template"},{"title":"Update Email Template","deprecated":null,"version":null,"openapi":"/api/email-templates-2/email-templates-2.yaml put /custom-templates/email","href":"/api/email-templates/update-email-template"}]},{"group":"Custom Push Templates","icon":"bell","pages":[{"title":"Push Templates Overview","icon":"file-magnifying-glass","href":"/api/push-templates/push-templates-overview"},{"title":"Create Push Template","deprecated":null,"version":null,"openapi":"/api/push-templates/push-templates.yaml post /custom-templates/push","href":"/api/templates/create-push-template"},{"title":"Update Push Template","deprecated":null,"version":null,"openapi":"/api/push-templates/push-templates.yaml put /custom-templates/push","href":"/api/templates/update-push-template"},{"title":"Search for Push Templates","deprecated":null,"version":null,"openapi":"/api/push-templates/push-templates.yaml post /custom-templates/push/search","href":"/api/templates/search-for-push-templates"}]}]},{"group":"Content Blocks","icon":"cubes","pages":[{"title":"Content Blocks Overview","icon":"file-magnifying-glass","href":"/api/content-blocks/content-blocks-overview"},{"title":"Create Content Block","deprecated":null,"version":null,"openapi":"/api/content-blocks/content-blocks.yaml post /content-blocks","href":"/api/content-blocks/create-content-block"},{"title":"Update Content Block","deprecated":null,"version":null,"openapi":"/api/content-blocks/content-blocks.yaml put /content-blocks","href":"/api/content-blocks/update-content-block"},{"title":"Get Specific Content Blocks","deprecated":null,"version":null,"openapi":"/api/content-blocks/content-blocks.yaml post /content-blocks/get-by-ids","href":"/api/content-blocks/get-specific-content-blocks"},{"title":"Search Content Blocks","deprecated":null,"version":null,"openapi":"/api/content-blocks/content-blocks.yaml post /content-blocks/search","href":"/api/content-blocks/search-content-blocks"}]},{"group":"Content APIs","icon":"plug","pages":[{"title":"Content APIs Overview","icon":"file-magnifying-glass","href":"/api/content-apis/content-apis-overview"},{"title":"List Content APIs","deprecated":null,"version":null,"openapi":"/api/content-apis/content-apis.yaml get /v5/content-apis","href":"/api/content-apis/list-content-apis"},{"title":"Test Content API","deprecated":null,"version":null,"openapi":"/api/content-apis/content-apis.yaml post /v5/content-apis/{id}/test","href":"/api/content-apis/test-content-api"}]},{"group":"Locales","icon":"language","pages":[{"title":"Locales Overview","icon":"file-magnifying-glass","href":"/api/locales/locales-overview"},{"title":"List Locales","deprecated":null,"version":null,"openapi":"/api/locales/locales.yaml get /v5/locales","href":"/api/locales/list-locales"}]},{"group":"Recommendations","icon":"wand-magic-sparkles","pages":[{"title":"Recommendations Overview","icon":"file-magnifying-glass","href":"/api/recommendations/recommendations-overview"},{"title":"Fetch All Recommendations","deprecated":null,"version":null,"openapi":"/api/recommendations/recommendations.yaml get /recommendations","href":"/api/recommendations/fetch-all-recommendations"},{"title":"Fetch Recommendation Details","deprecated":null,"version":null,"openapi":"/api/recommendations/recommendations.yaml get /recommendations/{recommendation_id}","href":"/api/recommendations/fetch-recommendation-details"},{"title":"Fetch Recommendation Results","deprecated":null,"version":null,"openapi":"/api/recommendations/recommendations.yaml post /recommendations/{recommendation_id}/items","href":"/api/recommendations/fetch-recommendation-results"}]},{"group":"Coupons","icon":"ticket","pages":[{"title":"Coupon Management Overview","icon":"file-magnifying-glass","href":"/api/coupons/coupons-overview"},{"title":"Create a Coupon List","deprecated":null,"version":null,"openapi":"/api/coupons/coupons.yaml post /coupon-list","href":"/api/coupon-lists/create-a-coupon-list"},{"title":"Fetch All Coupon Lists","deprecated":null,"version":null,"openapi":"/api/coupons/coupons.yaml get /coupon-list","href":"/api/coupon-lists/fetch-all-coupon-lists"},{"title":"Fetch Coupon List Details","deprecated":null,"version":null,"openapi":"/api/coupons/coupons.yaml get /coupon-list/{coupon_list_id}","href":"/api/coupon-lists/fetch-coupon-list-details"},{"title":"Update a Coupon List","deprecated":null,"version":null,"openapi":"/api/coupons/coupons.yaml patch /coupon-list/{coupon_list_id}","href":"/api/coupon-lists/update-a-coupon-list"},{"title":"Activate Coupon List","deprecated":null,"version":null,"openapi":"/api/coupons/coupons.yaml put /coupon-list/{coupon_list_id}/activate","href":"/api/coupon-lists/activate-coupon-list"},{"title":"Archive a Coupon List","deprecated":null,"version":null,"openapi":"/api/coupons/coupons.yaml put /coupon-list/{coupon_list_id}/archive","href":"/api/coupon-lists/archive-a-coupon-list"},{"title":"Upload a Coupon File to the Coupon List","deprecated":null,"version":null,"openapi":"/api/coupons/coupons.yaml post /coupon-list/{coupon_list_id}/files","href":"/api/coupon-files/upload-a-coupon-file-to-the-coupon-list"},{"title":"Fetch All Coupon Files From Coupon List","deprecated":null,"version":null,"openapi":"/api/coupons/coupons.yaml get /coupon-list/{coupon_list_id}/files","href":"/api/coupon-files/fetch-all-coupon-files-from-coupon-list"},{"title":"Fetch a Coupon File from Coupon List","deprecated":null,"version":null,"openapi":"/api/coupons/coupons.yaml get /coupon-list/{coupon_list_id}/files/{coupon_file_id}","href":"/api/coupon-files/fetch-a-coupon-file-from-coupon-list"},{"title":"Delete a Coupon File from the Coupon List","deprecated":null,"version":null,"openapi":"/api/coupons/coupons.yaml delete /coupon-list/{coupon_list_id}/files/{coupon_file_id}","href":"/api/coupon-files/delete-a-coupon-file-from-the-coupon-list"},{"title":"Generate Usage Report","deprecated":null,"version":null,"openapi":"/api/coupons/coupons.yaml post /coupon-list/{coupon_list_id}/usage-report","href":"/api/reports/generate-usage-report"}]},{"group":"Catalog","icon":"box","pages":[{"title":"Catalog Overview","icon":"file-magnifying-glass","href":"/api/catalog/catalog-overview"},{"title":"Create Catalog","deprecated":null,"version":null,"openapi":"/api/catalog/catalog.yaml post /catalog","href":"/api/catalog/create-catalog"},{"title":"Add Catalog Attributes","deprecated":null,"version":null,"openapi":"/api/catalog/catalog.yaml patch /catalog/{catalog_id}/attributes","href":"/api/catalog/add-catalog-attributes"},{"title":"Add Items","deprecated":null,"version":null,"openapi":"/api/catalog/catalog.yaml post /catalog/{catalog_id}/items","href":"/api/items/add-items"},{"title":"Get Items","deprecated":null,"version":null,"openapi":"/api/catalog/catalog.yaml post /catalog/{catalog_id}/items/search","href":"/api/items/get-items"},{"title":"Update Items","deprecated":null,"version":null,"openapi":"/api/catalog/catalog.yaml patch /catalog/{catalog_id}/items","href":"/api/items/update-items"},{"title":"Delete Items","deprecated":null,"version":null,"openapi":"/api/catalog/catalog.yaml post /catalog/{catalog_id}/items/bulk-delete","href":"/api/items/delete-items"}]}]},{"group":"Flows","icon":"diagram-project","pages":[{"title":"Flows Overview","href":"/api/flows/flows-overview"},{"title":"Search Flows","deprecated":null,"version":null,"openapi":"/api/flows/flows.yaml post /v5/flows/search","href":"/api/flows/search-flows"},{"title":"Get a Single Flow","deprecated":null,"version":null,"openapi":"/api/flows/flows.yaml get /v5/flows/{flow_id}","href":"/api/flows/get-a-single-flow"},{"title":"Get a Specific Version of a Flow","deprecated":null,"version":null,"openapi":"/api/flows/flows.yaml get /v5/flows/{flow_id}/versions/{version_id}","href":"/api/flows/get-a-specific-version-of-a-flow"},{"title":"Update Flow Status","deprecated":null,"version":null,"openapi":"/api/flows/flows.yaml patch /v5/flows/{flow_id}/status","href":"/api/flows/update-flow-status"}]},{"group":"Offerings","icon":"gift","pages":[{"title":"Offerings Overview","icon":"gift","href":"/api/offerings/offerings-overview"},{"title":"List Offerings","deprecated":null,"version":null,"openapi":"/api/offerings/offerings.yaml get /v5/offers","href":"/api/public-offerings/list-offerings"},{"title":"Get Offering","deprecated":null,"version":null,"openapi":"/api/offerings/offerings.yaml get /v5/offers/{offer_id}","href":"/api/public-offerings/get-offering"},{"title":"Create Offering","deprecated":null,"version":null,"openapi":"/api/offerings/offerings.yaml post /v5/offers","href":"/api/public-offerings/create-offering"},{"title":"Update Offering","deprecated":null,"version":null,"openapi":"/api/offerings/offerings.yaml patch /v5/offers/{offer_id}","href":"/api/public-offerings/update-offering"},{"title":"List Offer Templates","deprecated":null,"version":null,"openapi":"/api/offerings/offerings.yaml get /v5/offers/templates","href":"/api/public-offerings/list-offer-templates"},{"title":"Get Offer Template","deprecated":null,"version":null,"openapi":"/api/offerings/offerings.yaml get /v5/offers/templates/{template_id}","href":"/api/public-offerings/get-offer-template"}]},{"group":"Campaigns","icon":"paper-plane","pages":[{"group":"Campaigns","icon":"file-pen","pages":[{"title":"Campaigns Overview","icon":"file-magnifying-glass","href":"/api/campaigns/campaign-draft-overview"},{"title":"Create Campaign Draft (V5)","deprecated":null,"version":null,"openapi":"/api/campaigns/campaign-draft.yaml post /v5/campaigns","href":"/api/create-campaigns/create-campaign-draft-v5"},{"title":"Campaign content reference","icon":"layout-template","href":"/api/campaigns/campaign-content-reference"},{"title":"Audience and delivery reference","icon":"users-viewfinder","href":"/api/campaigns/audience-scheduling-delivery-reference"},{"title":"Get Campaign (V5)","deprecated":null,"version":null,"openapi":"/api/campaigns/campaign-draft.yaml get /v5/campaigns/{campaign_id}","href":"/api/get-campaign-details/get-campaign-v5"},{"title":"Update Campaign (V5)","deprecated":null,"version":null,"openapi":"/api/campaigns/campaign-draft.yaml patch /v5/campaigns/{campaign_id}","href":"/api/update-campaigns/update-campaign-v5"},{"title":"Validate Campaign (V5)","deprecated":null,"version":null,"openapi":"/api/campaigns/campaign-draft.yaml post /v5/campaigns/{campaign_id}/validate","href":"/api/create-campaigns/validate-campaign-v5"},{"title":"Update Campaign Status (V5)","deprecated":null,"version":null,"openapi":"/api/campaigns/campaign-draft.yaml patch /v5/campaigns/{campaign_id}/status","href":"/api/update-campaigns/update-campaign-status-v5"},{"title":"Search Campaigns (V5)","deprecated":null,"version":null,"openapi":"/api/campaigns/campaign-draft.yaml post /v5/campaigns/search","href":"/api/get-campaign-details/search-campaigns-v5"},{"title":"Test Campaign (V5)","deprecated":null,"version":null,"openapi":"/api/campaigns/campaign-draft.yaml post /v5/campaigns/test","href":"/api/test-campaigns/test-campaign-v5"},{"title":"Get Campaign Meta (V5)","deprecated":null,"version":null,"openapi":"/api/campaigns/campaign-draft.yaml post /v5/campaigns/meta","href":"/api/get-campaign-details/get-campaign-meta-v5"},{"title":"Personalized Preview (V5)","deprecated":null,"version":null,"openapi":"/api/campaigns/campaign-draft.yaml post /v5/personalizations/previews","href":"/api/personalized-preview/personalized-preview-v5"}]},{"group":"Campaigns (Legacy)","icon":"paper-plane","pages":[{"title":"Campaigns (Legacy) Overview","icon":"file-magnifying-glass","href":"/api/campaigns/campaigns-overview"},{"title":"Create Campaign","deprecated":null,"version":null,"openapi":"/api/campaigns/campaigns.yaml post /campaigns","href":"/api/create-campaigns/create-campaign"},{"title":"Update Campaign (V1 — Legacy)","deprecated":null,"version":null,"openapi":"/api/campaigns/campaigns.yaml patch /campaigns/{campaign_id}","href":"/api/update-campaigns/update-campaign-v1-—-legacy"},{"title":"Search Campaigns","deprecated":null,"version":null,"openapi":"/api/campaigns/campaigns.yaml post /campaigns/search","href":"/api/get-campaign-details/search-campaigns"},{"title":"V1 vs. V5 Search Campaigns: Behavioral Differences","href":"/api/campaigns/search-campaigns-v5-migration"},{"title":"Test Campaign","deprecated":null,"version":null,"openapi":"/api/campaigns/campaigns.yaml post /campaigns/test","href":"/api/test-campaigns/test-campaign"},{"title":"Personalized Preview","deprecated":null,"version":null,"openapi":"/api/campaigns/campaigns.yaml post /personalization/preview","href":"/api/test-campaigns/personalized-preview"},{"title":"Get Campaign Meta (V1 — Legacy)","deprecated":null,"version":null,"openapi":"/api/campaigns/campaigns.yaml post /campaigns/meta","href":"/api/get-campaign-details/get-campaign-meta-v1-—-legacy"},{"title":"Change Campaign Status","deprecated":null,"version":null,"openapi":"/api/campaigns/campaigns.yaml post /campaigns/status","href":"/api/update-campaigns/change-campaign-status"},{"title":"Get Child Campaigns","deprecated":null,"version":null,"openapi":"/api/campaigns/campaigns.yaml post /campaigns/{parent_campaign_id}/executions","href":"/api/get-campaign-details/get-child-campaigns"},{"title":"Update Global Control Group","deprecated":null,"version":null,"openapi":"/api/campaigns/campaigns.yaml put /global-control-group/users","href":"/api/update-campaigns/update-global-control-group"}]},{"group":"Campaign Report and Stats","icon":"chart-bar","pages":[{"title":"Campaign Stats and Reports Overview","icon":"file-magnifying-glass","href":"/api/stats-report/stats-report-overview"},{"title":"Get Campaign Stats","deprecated":null,"version":null,"openapi":"/api/stats-report/stats-report.yaml post /core-services/v1/campaign-stats","href":"/api/stats/get-campaign-stats"},{"title":"Download Campaign Report","deprecated":null,"version":null,"openapi":"/api/stats-report/stats-report.yaml get /campaign_reports/rest_api/{APP_ID}/{FILENAME}","href":"/api/campaign-reports/download-campaign-report"}]}]},{"group":"Analyze","icon":"chart-line","tag":"NEW","pages":[{"group":"Dashboards","icon":"objects-column","pages":[{"title":"Custom Dashboards Overview","icon":"file-magnifying-glass","href":"/api/analytics/analytics-overview"},{"title":"List Dashboards","deprecated":null,"version":null,"openapi":"/api/analytics/analytics.yaml get /v5/analytics/dashboards","href":"/api/dashboards/list-dashboards"},{"title":"Get Dashboard Charts","deprecated":null,"version":null,"openapi":"/api/analytics/analytics.yaml get /v5/analytics/dashboards/{dashboard_id}/charts","href":"/api/dashboards/get-dashboard-charts"},{"title":"Get Chart Data","deprecated":null,"version":null,"openapi":"/api/analytics/analytics.yaml get /v5/analytics/dashboards/{dashboard_id}/charts/{chart_id}","href":"/api/dashboards/get-chart-data"}]},{"group":"Analytics","icon":"chart-mixed","pages":[{"title":"Analytics Query APIs Overview","icon":"chart-mixed","href":"/api/analytics-query/analytics-query-overview"},{"title":"Register a Behavior Query","deprecated":null,"version":null,"openapi":"/api/analytics-query/analytics-query.yaml post /v5/analytics/behavior","href":"/api/analytics-queries/register-a-behavior-query"},{"title":"Register a Funnels Query","deprecated":null,"version":null,"openapi":"/api/analytics-query/analytics-query.yaml post /v5/analytics/funnels","href":"/api/analytics-queries/register-a-funnels-query"},{"title":"Register a Retention Query","deprecated":null,"version":null,"openapi":"/api/analytics-query/analytics-query.yaml post /v5/analytics/retention","href":"/api/analytics-queries/register-a-retention-query"},{"title":"Register a Session-Source Query","deprecated":null,"version":null,"openapi":"/api/analytics-query/analytics-query.yaml post /v5/analytics/session-source","href":"/api/analytics-queries/register-a-session-source-query"},{"title":"Register a User Analysis Query","deprecated":null,"version":null,"openapi":"/api/analytics-query/analytics-query.yaml post /v5/analytics/user-analysis","href":"/api/analytics-queries/register-a-user-analysis-query"},{"title":"Get Query Status","deprecated":null,"version":null,"openapi":"/api/analytics-query/analytics-query.yaml get /v5/analytics/query/{request_id}/status","href":"/api/analytics-queries/get-query-status"},{"title":"Get Query Results","deprecated":null,"version":null,"openapi":"/api/analytics-query/analytics-query.yaml get /v5/analytics/query/{request_id}/results","href":"/api/analytics-queries/get-query-results"}]}]},{"group":"Segments","icon":"users","pages":[{"title":"Segments Overview","icon":"file-magnifying-glass","href":"/api/custom-segments/custom-segments-overview"},{"group":"File Segments","icon":"file-csv","pages":[{"title":"Create File Segment","deprecated":null,"version":null,"openapi":"/api/custom-segments/custom-segments.yaml post /v2/custom-segments/file-segment","href":"/api/file-segments/create-file-segment"},{"title":"Add Users to File Segment","deprecated":null,"version":null,"openapi":"/api/custom-segments/custom-segments.yaml put /v2/custom-segments/file-segment/add-users","href":"/api/file-segments/add-users-to-file-segment"},{"title":"Remove Users from File Segment","deprecated":null,"version":null,"openapi":"/api/custom-segments/custom-segments.yaml put /v2/custom-segments/file-segment/remove-users","href":"/api/file-segments/remove-users-from-file-segment"},{"title":"Replace Users from File Segment","deprecated":null,"version":null,"openapi":"/api/custom-segments/custom-segments.yaml put /v2/custom-segments/file-segment/replace","href":"/api/file-segments/replace-users-from-file-segment"}]},{"group":"Filter Segments","icon":"filter","pages":[{"title":"List Segments","deprecated":null,"version":null,"openapi":"/api/custom-segments/custom-segments.yaml get /v3/custom-segments","href":"/api/filter-segments/list-segments"},{"title":"Create Filter Segment","deprecated":null,"version":null,"openapi":"/api/custom-segments/custom-segments.yaml post /v3/custom-segments","href":"/api/filter-segments/create-filter-segment"},{"title":"Get Segment by ID","deprecated":null,"version":null,"openapi":"/api/custom-segments/custom-segments.yaml get /v3/custom-segments/{id}","href":"/api/filter-segments/get-segment-by-id"},{"title":"Update Filter Segment","deprecated":null,"version":null,"openapi":"/api/custom-segments/custom-segments.yaml patch /v3/custom-segments/{id}","href":"/api/filter-segments/update-filter-segment"}]},{"group":"Cohort Sync","icon":"users-gear","pages":[{"title":"Sync Cohort Members","deprecated":null,"version":null,"openapi":"/api/cohort-audience/cohort-audience.yaml post /v1/integrations/cohortsync","href":"/api/cohort-sync/sync-cohort-members"}]},{"group":"Manage Segments","icon":"sliders","pages":[{"title":"Archive Segment","deprecated":null,"version":null,"openapi":"/api/custom-segments/custom-segments.yaml patch /v2/custom-segments/archive","href":"/api/manage-segments/archive-segment"},{"title":"Unarchive Segment","deprecated":null,"version":null,"openapi":"/api/custom-segments/custom-segments.yaml patch /v2/custom-segments/unarchive","href":"/api/manage-segments/unarchive-segment"}]}]},{"group":"Subscriptions","icon":"envelope-circle-check","pages":[{"group":"Email Subscription","icon":"envelope","pages":[{"title":"Email Subscription Overview","icon":"file-magnifying-glass","href":"/api/email-subscription/email-subscription-overview"},{"title":"Bulk Resubscribe Users","description":"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 addresses (associated with the unsubscribed users) from their suppression list.\n","deprecated":null,"version":null,"openapi":"/api/email-subscription/email-subscription.yaml post /emails/v1.0/bulk-resubscribe","href":"/api/resubscribe/bulk-resubscribe-users"},{"title":"Update User Email Opt-in Preferences","deprecated":null,"version":null,"openapi":"/api/email-subscription/email-subscription.yaml put /v1.0/opt-in-management/user-preferences","href":"/api/opt-in-management/update-user-email-opt-in-preferences"}]},{"group":"Subscription Categories","icon":"list-check","pages":[{"group":"Subscription Categories (V5)","pages":[{"title":"Subscription Categories (V5)","description":"Read and manage a user's Subscription Category preferences server-to-server, without depending on MoEngage-hosted landing-page flows.","icon":"file-magnifying-glass","href":"/api/subscription-categories/subscription-categories-v5/subscription-categories-overview-v5"},{"title":"Get Subscription Categories (V5)","deprecated":null,"version":null,"openapi":"/api/subscription-categories/subscription-categories-v5/subscription-categories-v5.yaml get /v5/subscription-categories","href":"/api/subscription-categories/get-subscription-categories-v5"},{"title":"Get Subscription Preferences (V5)","deprecated":null,"version":null,"openapi":"/api/subscription-categories/subscription-categories-v5/subscription-categories-v5.yaml get /v5/subscription-preferences","href":"/api/subscription-preferences/get-subscription-preferences-v5"},{"title":"Update Subscription Preferences (V5)","deprecated":null,"version":null,"openapi":"/api/subscription-categories/subscription-categories-v5/subscription-categories-v5.yaml patch /v5/subscription-preferences","href":"/api/subscription-preferences/update-subscription-preferences-v5"}]},{"group":"Subscription Categories (Legacy)","pages":[{"title":"Subscription Categories (Legacy)","icon":"file-magnifying-glass","href":"/api/subscription-categories/subscription-categories-legacy/subscription-categories-overview-legacy"},{"title":"Get Subscription Preferences","deprecated":null,"version":null,"openapi":"/api/subscription-categories/subscription-categories-legacy/subscription-categories-legacy.yaml get /category-subscription/user-preferences","href":"/api/subscription-preferences/get-subscription-preferences"},{"title":"Update Subscription Preferences","deprecated":null,"version":null,"openapi":"/api/subscription-categories/subscription-categories-legacy/subscription-categories-legacy.yaml put /category-subscription/user-preferences","href":"/api/subscription-preferences/update-subscription-preferences"},{"title":"Bulk Update Subscription Preferences","deprecated":null,"version":null,"openapi":"/api/subscription-categories/subscription-categories-legacy/subscription-categories-legacy.yaml post /category-subscription/user-preferences","href":"/api/subscription-preferences/bulk-update-subscription-preferences"}]}]}]},{"group":"Push","icon":"bell","pages":[{"title":"Push Overview","icon":"file-magnifying-glass","href":"/api/push/push-overview"},{"title":"Push API (V5)","openapi":"api/push/push-v5.yaml POST /v5/push/notifications","href":"/api/push/push-api"},{"title":"Push API (v2.1, Legacy)","openapi":"api/push/push-v2-1.yaml POST /v2.1/transaction/sendpush","href":"/api/push/push-api-v2-1-legacy"},{"title":"Push API (v2, Legacy)","openapi":"api/push/push.yaml POST /transaction/sendpush","href":"/api/push/push-api-v2-legacy"}]},{"group":"Cards","icon":"rectangle-history","pages":[{"title":"Cards Overview","icon":"file-magnifying-glass","href":"/api/cards/cards-overview"},{"title":"Fetch Cards for User","deprecated":null,"version":null,"openapi":"/api/cards/cards.yaml post /cards/fetch","href":"/api/cards/fetch-cards-for-user"},{"title":"Delete Cards for User","deprecated":null,"version":null,"openapi":"/api/cards/cards.yaml delete /cards/delete","href":"/api/cards/delete-cards-for-user"}]},{"group":"Inform","icon":"message","pages":[{"title":"Inform Overview","icon":"file-magnifying-glass","href":"/api/inform/inform-overview"},{"title":"Send Transactional Alert","deprecated":null,"version":null,"openapi":"/api/inform/inform.yaml post /alerts/send","href":"/api/transactional-alerts/send-transactional-alert"}]},{"group":"Live Activities","icon":"circle-play","pages":[{"title":"Live Activities Overview","icon":"file-magnifying-glass","href":"/api/live-activities/live-activities-overview"},{"title":"Start Broadcast Live Activity","deprecated":null,"version":null,"openapi":"/api/live-activities/live-activities.yaml post /live-activity/broadcast/start","href":"/api/live-activities/start-broadcast-live-activity"},{"title":"Update Broadcast Live Activity","deprecated":null,"version":null,"openapi":"/api/live-activities/live-activities.yaml post /live-activity/broadcast/update","href":"/api/live-activities/update-broadcast-live-activity"},{"title":"End Broadcast Live Activity","deprecated":null,"version":null,"openapi":"/api/live-activities/live-activities.yaml post /live-activity/broadcast/end","href":"/api/live-activities/end-broadcast-live-activity"}]},{"group":"Personalize","icon":"bullseye-arrow","pages":[{"title":"Personalize Overview","icon":"file-magnifying-glass","href":"/api/personalize-experience/personalize-overview"},{"title":"Fetch Experience","deprecated":null,"version":null,"openapi":"/api/personalize-experience/personalize-experience.yaml post /experiences/fetch","href":"/api/experiences/fetch-experience"},{"title":"Fetch Experience Metadata","deprecated":null,"version":null,"openapi":"/api/personalize-experience/personalize-experience.yaml get /experiences/metadata","href":"/api/experiences/fetch-experience-metadata"},{"title":"Track Experience Events","deprecated":null,"version":null,"openapi":"/api/personalize-experience/personalize-experience.yaml post /experiences/events","href":"/api/events/track-experience-events"}]},{"group":"Message Archival","icon":"box-archive","pages":[{"title":"Message Archival Overview","icon":"file-magnifying-glass","href":"/api/message-archival/message-archival-overview"},{"title":"View Archived Message","deprecated":null,"version":null,"openapi":"/api/message-archival/message-archival.yaml post /archival/view","href":"/api/message-archival/view-archived-message"}]}]}]},{"tab":"AI \u0026 Intelligence","pages":[{"title":"AI \u0026 Intelligence","href":"/user-guide/ai-and-intelligence/overview"}]},{"tab":"Partner Integrations","pages":[{"title":"Partner Integrations","href":"/partner-guide/introduction"}]},{"tab":"Use Cases","pages":[{"title":"Use Cases","href":"/use-cases/introduction"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/subscribe-to-release-notes"}]}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/api/opt-in-management/update-user-email-opt-in-preferences"}]}]},"basePath":"","title":"Update User Email Opt-in Preferences - MoEngage","buildId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","deploymentId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Do6EtGSl.js","utils-id4tQ6My.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-Byrixac4.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-nakYa3Zl.js","snippetPresets-Bq-pUS7h.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-CujTC_9K.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-FneVUsVu.js","shallow-DY9WpUCz.js","getApiPlaygroundDisplay-Bz8WpPfA.js","CodeSnippet-DgCuJg4G.js","CodeSnippets-Dub9c4T0.js","Page-CePXnjd1.js","getPastedJson-xdI8y2XB.js","icon--yVw5vkr.js","MethodPill-C47t7MdS.js","DuplicateIcon-BzwJ2LeC.js","createIcon-BzggGy84.js","DynamicMarkdown-AlxJK8VR.js","SectionHeading-CMlwFxdK.js","axios-vUo_bRtp.js","Markdown-BNgNrPsi.js","clsx-apD-Q0Oo.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-qmLwQyWY.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Dc4qTkWx.js"]}