Merchant API v1beta was discontinued and shut down on February 28, 2026. For steps to transition to the latest stable version, seeMigrate from v1beta to v1.
Manage your email notification preferences for Merchant Center accountsStay organized with collectionsSave and categorize content based on your preferences.
Page Summary
This guide explains how to manage Merchant Center email notifications using theEmailPreferencesresource and the Merchant API.
You can control which email notifications your account users receive by opting in or out for specific notification types.
To manage email notifications, you'll need the user's email address and the merchant ID.
This guide explains how to manage your email notification preferences of your
Merchant Center account for non-mandatory emails using Merchant API.
Your email preferences are specific to each Merchant Center account you have
access to. If you manage multiple accounts, you can set up different preferences
for each of them. The Merchant API lets you retrieve your current settings and
update them. For more information about managing email preferences through the
Merchant Center interface, seeChange your Merchant Center email
preferences.
The Merchant API only supports managing preferences for "News and tips"
emails.
Special considerations
Authenticated user only: You can only get or update email preferences
for the user account that is authenticated for the API call. You must
specify this user's email address in the request path (for example,user@email.com) or use themealias.
Advanced accounts: If you are an advanced account user, your email
preferences are set at the advanced account level and apply to the advanced
account itself and all its sub-accounts. When using the API, advanced
account users should specify the advanced account ID to manage their
preferences.
Service accounts: Service accounts don't receive notifications even if
email preferences are set for them.
UNCONFIRMEDstate: TheUNCONFIRMEDopt-in state for an email
preference can only be set by the server. You cannot set a preference toUNCONFIRMEDusing the API. Attempting to set this preference results in an
error. TheUNCONFIRMEDstate indicates that a confirmation email has been
sent to a user who has opted in, but they haven't yet clicked the
confirmation link.
Check your Merchant Center email preferences
To see your current email notification settings for a specific
Merchant Center account, use theGetEmailPreferencesmethod. You'll need to provide your Merchant Center account ID and use the
email address for the user or use themealias to indicate the authenticated
user.
This request retrieves theEmailPreferencesresource, which shows your opt-in status for available notification categories,
such asnews_and_tips.
GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences
A successful request returns theEmailPreferencesresource showing your
current settings.
fromexamples.authenticationimportconfigurationfromexamples.authenticationimportgenerate_user_credentialsfromgoogle.shopping.merchant_accounts_v1importEmailPreferencesServiceClientfromgoogle.shopping.merchant_accounts_v1importGetEmailPreferencesRequest_ACCOUNT=configuration.Configuration().read_merchant_info()defget_email_preferences(email_address):"""Gets the email preferences of a Merchant Center account."""# Gets OAuth Credentials.credentials=generate_user_credentials.main()# Creates a client.client=EmailPreferencesServiceClient(credentials=credentials)# Creates EmailPreferences name to identify the EmailPreferences.name=("accounts/"+_ACCOUNT+"/users/"+email_address+"/emailPreferences")# Creates the request.request=GetEmailPreferencesRequest(name=name)# Makes the request and catches and prints any error messages.try:response=client.get_email_preferences(request=request)print("Retrieved EmailPreferences below")print(response)exceptRuntimeErrorase:print(e)if__name__=="__main__":# The email address of this user. If you want to get the user information# Of the user making the Content API request, you can also use "me" instead# Of an email address.# email = "testUser@gmail.com"email="me"get_email_preferences(email)
To change your email notification preferences, such as opting in or out of
"News and tips" emails, use theUpdateEmailPreferencesmethod.
In your request, you'll provide the Merchant Center account ID and use your
email address (or themealias) for the user email. The request body should
contain theEmailPreferencesobject with the selectedopt_in_statefor thenews_and_tipsfield. You must
also specifynews_and_tipsin theupdate_maskquery parameter to indicate
which preference you are changing.
This action updates the email preferences for the authenticated user for the
specified Merchant Center account. For example, settingnews_and_tipstoOPTED_OUTstops you from receiving "News and tips" emails for that
account.
fromexamples.authenticationimportconfigurationfromexamples.authenticationimportgenerate_user_credentialsfromgoogle.protobufimportfield_mask_pb2fromgoogle.shopping.merchant_accounts_v1importEmailPreferencesfromgoogle.shopping.merchant_accounts_v1importEmailPreferencesServiceClientfromgoogle.shopping.merchant_accounts_v1importUpdateEmailPreferencesRequestFieldMask=field_mask_pb2.FieldMask_ACCOUNT=configuration.Configuration().read_merchant_info()defupdate_email_preferences(email_address):"""Updates a EmailPreferences to OPT_IN to News and Tips."""# Gets OAuth Credentials.credentials=generate_user_credentials.main()# Creates a client.client=EmailPreferencesServiceClient(credentials=credentials)# Creates EmailPreferences name to identify EmailPreferences.name=("accounts/"+_ACCOUNT+"/users/"+email_address+"/emailPreferences")# Create a EmailPreferences with the updated fields.email_preferences=EmailPreferences(name=name,news_and_tips=EmailPreferences.OptInState.OPTED_IN)# Create field maskfield_mask=FieldMask(paths=["news_and_tips"])# Creates the request.request=UpdateEmailPreferencesRequest(email_preferences=email_preferences,update_mask=field_mask)# Makes the request and catches and prints any error messages.try:response=client.update_email_preferences(request=request)print("Updated EmailPreferences Name below")print(response.name)exceptRuntimeErrorase:print(e)if__name__=="__main__":# The email address of this user. If you want to get the user information# of the user making the Content API request, you can also use "me" instead# of an email address.# email = "testUser@gmail.com"email="me"update_email_preferences(email)
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2026-05-26 UTC."],[],[]]