rocket
Meet
Merchant API
- the official successor to Content API for Shopping.
update
Get the latest
on new Merchant API features, bug fixes, and updates.
add_alert
Note: Content API for Shopping will be sunset on August 18, 2026.
Service accounts
Stay organized with collections
Save and categorize content based on your preferences.
Service accounts are special Google accounts that can be used by
applications to access Google APIs programmatically via OAuth 2.0. A service
account uses an OAuth 2.0 flow that does not require human authorization.
Instead, it uses a key file that only your application can access. This guide
discusses how to access the Content API for Shopping with service accounts.
Note: Applications using service accounts
for authentication can only access your own Merchant Center account. If you are
writing a third-party application that needs access to your clients' Merchant
Center accounts, please see the Authorizing Requests
guide instead.
Prerequisites
Steps to using a service account to access the Content API for Shopping
- Generate service account credentials or access the public credentials
you've already generated. You will need to create an OAuth 2.0 Client ID and
obtain a *.json private key file:
- Go to the Google API Console.
- Select a project in the drop-down menu at the top of the page. If
you do not have one yet, create one by clicking NEW PROJECT.
- If you have not already enabled the Content API for Shopping for
this project, then search for it in the list of Google APIs and enable it.
- In the sidebar on the left, select Credentials.
You may need to click the left-pointing arrow at the top left to see this.
- To set up a service account, select CREATE CREDENTIALS, and
then Service account.
- Name
the new service account. This also serves as the default username for the
service account ID. Record the service account ID, including the part after
the '@' character, for later use. Click CREATE, then go through the
optional steps of granting access to project and users, and click DONE.
The choice of role for the service account will not
have any effect on what calls can be made to the Content API, as access to
Content API methods is determined instead by the role associated with the
service account ID in Merchant Center. If you are unsure what to pick, just
pick Project > Viewer.
- You will be directed to the Service Accounts page where your new
service account can be accessed.
- To obtain a JSON private key, click on the service account, then
the KEYS tab. Click ADD KEY > Create new key and then select JSON
as the key type. Click CREATE to download the private key to your
computer.
- Add the new service
account as a user to your Merchant Center account. If you are a third-party
developer, you will need to have your client do this step for you.
- Go to your Merchant
Center account.
- Go to Account Access in the settings of your Merchant Center
account.
- Click + Add user and use the service account ID as the email
address for the new user.
If you did not take note of the
service account ID earlier, go to the Service
Accounts administration page and select the project you created.
- Specify the User access and Email notifications
preferences for the service account. Note that the use of the
Accounts
service requires Admin access.
- Click Add user to save preferences and be returned to the list
of users. The service account ID should be listed with the chosen user
role.
- Repeat the process for all other service accounts you want to
add.
- Now you can access your Merchant Center account using the service account
either by using the Google Application
Default Credentials flow or by using the service account flow
directly. The Content API for Shopping Samples show how to use both
flows for service account credentials in each supported programming language.
Please check out the code samples to try out your new service account and to
learn what changes you will need to use service accounts in your own code.
Frequently asked questions
- Can I sign in to the Merchant Center UI with my service account?
- No, service accounts are not regular Google accounts and cannot access the
Merchant Center UI.
- How often do I need to refresh service account access tokens?
- Access tokens expire one hour after they are issued by the Google OAuth 2.0
Authorization Server. When an access token expires, the application should use
the client library to fetch another access token.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-28 UTC.
[null,null,["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eService accounts enable applications to programmatically access Google APIs, including the Content API for Shopping, using OAuth 2.0 without human intervention.\u003c/p\u003e\n"],["\u003cp\u003eTo utilize service accounts, you need to generate service account credentials, add the service account as a user in your Merchant Center account, and then access your Merchant Center account using either the Google Application Default Credentials flow or the service account flow.\u003c/p\u003e\n"],["\u003cp\u003eApplications authenticated with service accounts can only access your own Merchant Center account; for third-party applications needing access to client accounts, refer to the Authorizing Requests guide.\u003c/p\u003e\n"],["\u003cp\u003eService accounts cannot be used to sign in to the Merchant Center UI and access tokens expire after one hour, requiring the application to fetch a new one using the client library.\u003c/p\u003e\n"]]],["Service accounts allow applications to access the Content API for Shopping programmatically. Key actions include: generating service account credentials by creating an OAuth 2.0 Client ID and a JSON private key file via the Google API Console, and adding the service account as a user within the Merchant Center account, specifying access and notification preferences. To access the Merchant center, you can use Google Application Default Credentials or a service account flow, with example code available. Access tokens expire hourly, requiring renewal.\n"],null,["# Service accounts are special Google accounts that can be used by\napplications to access Google APIs programmatically via OAuth 2.0. A service\naccount uses an OAuth 2.0 flow that does not require human authorization.\nInstead, it uses a key file that only your application can access. This guide\ndiscusses how to access the Content API for Shopping with service accounts.\n\n**Note:** Applications using service accounts\nfor authentication can only access your own Merchant Center account. If you are\nwriting a third-party application that needs access to your clients' Merchant\nCenter accounts, please see the [Authorizing Requests](/shopping-content/guides/how-tos/authorizing)\nguide instead.\n\nPrerequisites\n-------------\n\n- A [Merchant Center](//merchants.google.com/) account.\n\nSteps to using a service account to access the Content API for Shopping\n-----------------------------------------------------------------------\n\n1. Generate service account credentials or access the public credentials you've already generated. You will need to create an OAuth 2.0 Client ID and obtain a \\*.json private key file:\n 1. Go to the [Google API Console](https://console.cloud.google.com/apis/library).\n 2. Select a project in the drop-down menu at the top of the page. If you do not have one yet, create one by clicking **NEW PROJECT**.\n 3. If you have not already enabled the Content API for Shopping for this project, then search for it in the list of Google APIs and enable it.\n 4. In the sidebar on the left, select **Credentials**. You may need to click the left-pointing arrow at the top left to see this.\n 5. To set up a service account, select **CREATE CREDENTIALS** , and then **Service account** . \n 6. Name the new service account. This also serves as the default username for the service account ID. Record the service account ID, including the part after the '@' character, for later use. Click **CREATE** , then go through the optional steps of granting access to project and users, and click **DONE** .\n\n The choice of role for the service account will not\n have any effect on what calls can be made to the Content API, as access to\n Content API methods is determined instead by the role associated with the\n service account ID in Merchant Center. If you are unsure what to pick, just\n pick **Project \\\u003e Viewer**.\n 7. You will be directed to the Service Accounts page where your new service account can be accessed.\n 8. To obtain a JSON private key, click on the service account, then the **KEYS** tab. Click **ADD KEY \\\u003e Create new key** and then select JSON as the key type. Click **CREATE** to download the private key to your computer.\n2. Add the new service account as a user to your Merchant Center account. If you are a third-party developer, you will need to have your client do this step for you.\n 1. Go to your [Merchant\n Center account](//merchants.google.com/).\n 2. Go to **Account Access** in the settings of your Merchant Center account.\n 3. Click **+ Add user** and use the service account ID as the email address for the new user.\n\n If you did not take note of the\n service account ID earlier, go to the [Service\n Accounts](//console.developers.google.com/iam-admin/serviceaccounts/) administration page and select the project you created.\n 4. Specify the **User access** and **Email notifications** preferences for the service account. Note that the use of the `Accounts` service requires **Admin** access.\n 5. Click **Add user** to save preferences and be returned to the list of users. The service account ID should be listed with the chosen user role.\n 6. Repeat the process for all other service accounts you want to add.\n3. Now you can access your Merchant Center account using the service account either by using the [Google Application\n Default Credentials](/identity/protocols/application-default-credentials) flow or by using the [service account flow](/identity/protocols/OAuth2ServiceAccount) directly. The Content API for Shopping [Samples](/shopping-content/guides/libraries) show how to use both flows for service account credentials in each supported programming language. Please check out the code samples to try out your new service account and to learn what changes you will need to use service accounts in your own code.\n\nFrequently asked questions\n--------------------------\n\nCan I sign in to the Merchant Center UI with my service account?\n: No, service accounts are not regular Google accounts and cannot access the\n Merchant Center UI.\n\nHow often do I need to refresh service account access tokens?\n: Access tokens expire one hour after they are issued by the Google OAuth 2.0\n Authorization Server. When an access token expires, the application should use\n the client library to fetch another access token."]]