Migrate account management

The Accounts API is divided into a collection of resources to allow managing your Merchant Center accounts more efficiently with more precise control across different aspects of your account.

This guide explains the key changes and helps you migrate your existing account management integration from Content API for Shopping to Merchant API.

From one resource to many

In Content API for Shopping, the Account resource was a monolithic object containing everything from the account name and website URL to user lists and business information.

Merchant API splits this into several smaller, more focused resources. This change allows for more targeted and efficient API calls. For example, to update only your business address, you now make a PATCH request to the BusinessInfo resource instead of updating the entire Account object.

Here is a summary of how the concepts from the Content API for Shopping Account resource map to the new resources in the Merchant API:

New capabilities

Merchant API also introduces new capabilities for account management that were not available in Content API for Shopping:

  • Terms of Service:Programmatically retrieve and accept Terms of Service using the TermsOfService and TermsOfServiceAgreementState resources.
  • Account Access by Alias:Access accounts using a providerId~accountAlias format, providing a consistent way for businesses that manage multiple accounts to use their own account identifiers.

Requests

This table provides a consolidated comparison of the request URLs for common account management tasks between Content API for Shopping and Merchant API.

Request description Content API for Shopping Merchant API
Get account
GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/accounts/{accountId} GET https://merchantapi.googleapis.com/accounts/v1/accounts/{account}
Get account by alias
Not directly available GET https://merchantapi.googleapis.com/accounts/v1/accounts/{provider}~{alias}
List sub-accounts
GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/accounts GET https://merchantapi.googleapis.com/accounts/v1/accounts/{provider}:listSubaccounts
Create sub-account
POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/accounts POST https://merchantapi.googleapis.com/accounts/v1/accounts:createAndConfigure
Update account data
PUT https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/accounts/{accountId} PATCH on the appropriate resource. For example, to update the account name: PATCH https://merchantapi.googleapis.com/accounts/v1/accounts/{account}
Delete sub-account
DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/accounts/{accountId} DELETE https://merchantapi.googleapis.com/accounts/v1/accounts/{account}
Claim website
POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/accounts/{accountId}/claimwebsite POST https://merchantapi.googleapis.com/accounts/v1/accounts/{account}/homepage:claim
Link accounts
POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/accounts/{accountId}/link POST https://merchantapi.googleapis.com/accounts/v1/accounts/{account}/services:propose

The Account resource in Merchant API contains the essential details of a Merchant Center account, such as its name, ID, and basic settings.

Request comparison

Request description Content API for Shopping Merchant API
Get account details
GET /content/v2.1/{merchantId}/accounts/{accountId} (accessing core attributes like name , adult_content ) GET /accounts/v1/accounts/{account}
Create a sub-account
POST /content/v2.1/{merchantId}/accounts POST /accounts/v1/accounts:createAndConfigure
Update account details
PUT /content/v2.1/{merchantId}/accounts/{accountId} (updating core attributes) PATCH /accounts/v1/accounts/{account}
Delete a sub-account
DELETE /content/v2.1/{merchantId}/accounts/{accountId} DELETE /accounts/v1/accounts/{account}

Detailed field comparison

Content API for Shopping ( Account ) Merchant API ( Account ) Notes
id
account_id The numeric ID is now an output-only field. The primary identifier is the resource name .
name
account_name The human-readable name of the account.
language
language_code The field name is now language_code .

Manage business information

Use the BusinessInfo resource to manage public information about your business, such as your address and customer service contacts. This replaces the businessInformation object in Content API for Shopping.

Request comparison

Request description Content API for Shopping Merchant API
Get business information
GET /content/v2.1/{merchantId}/accounts/{accountId} (accessing the business_information attribute) GET /accounts/v1/accounts/{account}/businessInfo
Update business information
PUT /content/v2.1/{merchantId}/accounts/{accountId} (updating the business_information attribute) PATCH /accounts/v1/accounts/{account}/businessInfo

Detailed field comparison

Content API for Shopping ( business_information ) Merchant API ( BusinessInfo ) Notes
phone_number
phone The field is now phone and uses google.type.PhoneNumber .
customer_service.url
customer_service.uri The field name is now uri .

Manage your homepage

To manage your store's website URL and perform verification and claiming, use the Homepage resource. This replaces the websiteUrl field and the accounts.claimwebsite method from Content API for Shopping.

Request comparison

Request description Content API for Shopping Merchant API
Get homepage URL
GET /content/v2.1/{merchantId}/accounts/{accountId} (accessing the website_url attribute) GET /accounts/v1/accounts/{account}/homepage
Update homepage URL
PUT /content/v2.1/{merchantId}/accounts/{accountId} (updating the website_url attribute) PATCH /accounts/v1/accounts/{account}/homepage
Claim homepage
POST /content/v2.1/{merchantId}/accounts/{accountId}/claimwebsite POST /accounts/v1/accounts/{account}/homepage:claim
Unclaim homepage
Not available POST /accounts/v1/accounts/{account}/homepage:unclaim

Detailed field comparison

Content API for Shopping ( Account ) Merchant API ( Homepage ) Notes
website_url
uri The URL of the store's homepage.
Not directly available
claimed A boolean field that is true if the homepage is claimed.

Manage users

The User resource lets you manage who can access a Merchant Center account. This replaces the users array within the Account resource. A key difference is the user creation process. In Merchant API, adding a user sends an invitation. The user must accept the invitation before they can access the account.

Request comparison

Request description Content API for Shopping Merchant API
List users
GET /content/v2.1/{merchantId}/accounts/{accountId} (accessing the users attribute) GET /accounts/v1/accounts/{account}/users
Create a user
PUT /content/v2.1/{merchantId}/accounts/{accountId} (updating the users attribute) POST /accounts/v1/accounts/{account}/users
Update a user
PUT /content/v2.1/{merchantId}/accounts/{accountId} (updating the users attribute) PATCH /accounts/v1/accounts/{account}/users/{email}
Delete a user
PUT /content/v2.1/{merchantId}/accounts/{accountId} (updating the users attribute) DELETE /accounts/v1/accounts/{account}/users/{email}

Detailed field comparison

Content API for Shopping ( users array object) Merchant API ( User resource) Notes
email_address
name (in format accounts/{account}/users/{email} ) The user's email is now part of the resource name.
admin , order_manager , reporting_manager , etc.
access_rights Access rights are now consolidated into a repeated enum field.
Not available
state A new output-only field indicating if the user is PENDING or VERIFIED .

In Content API for Shopping, relationships were managed with accounts.link . Merchant API introduces a more explicit model with AccountService and AccountRelationship resources, requiring a handshake process (propose and accept).

Request comparison

Request description Content API for Shopping Merchant API
Link accounts
POST /content/v2.1/{merchantId}/accounts/{accountId}/link POST /accounts/v1/accounts/{account}/services:propose
List linked accounts
GET /content/v2.1/{merchantId}/accounts/{accountId}/listlinks GET /accounts/v1/accounts/{account}/relationships and GET /accounts/v1/accounts/{account}/services

Detailed field comparison

Content API for Shopping ( AccountLink ) Merchant API ( AccountService , AccountRelationship ) Notes
linked_account_id
provider (in AccountService ) The ID of the account providing the service.
service
service_type (in AccountService ) The type of service being provided (e.g., ACCOUNT_AGGREGATION ).
status
handshake.approval_state (in AccountService ) The status of the link (e.g., PENDING , ESTABLISHED ).

The accounttax service from the Content API for Shopping is not available in Merchant API. It is no longer required to provide US sales tax, for more information see Merchant Center product data specification update 2025 .

Manage business identity

Use the BusinessIdentity resource to self-declare attributes about your business. This replaces the businessIdentity object in Content API for Shopping.

Request comparison

Request description Content API for Shopping Merchant API
Get business identity
GET /content/v2.1/{merchantId}/accounts/{accountId} (accessing the business_identity attribute) GET /accounts/v1/accounts/{account}/businessIdentity
Update business identity
PUT /content/v2.1/{merchantId}/accounts/{accountId} (updating the business_identity attribute) PATCH /accounts/v1/accounts/{account}/businessIdentity

Detailed field comparison

Content API for Shopping ( business_identity ) Merchant API ( BusinessIdentity ) Notes
black_owned.self_identified (boolean)
black_owned.identity_declaration (enum) The boolean is replaced by an enum ( SELF_IDENTIFIES_AS , DOES_NOT_SELF_IDENTIFY_AS ) for more explicit declaration. This applies to all identity attributes.
include_for_promotions (boolean)
promotions_consent (enum) A global boolean is replaced by a more descriptive enum ( PROMOTIONS_CONSENT_GIVEN , PROMOTIONS_CONSENT_DENIED ).

List accounts

In Content API for Shopping the only type of advanced account was a 'Multi-Client Account (MCA)' and it exposed an accounts.list method to list the sub-accounts of the given Multi-Client Account. Advanced accounts in Merchant API are much more powerful, allowing a broader range of account types and relationships. To allow a straightforward migration for advanced accounts, Merchant API provides a direct equivalent to Content API for Shopping's accounts.list as a accounts.listSubaccounts method. We are introducing a new, more powerful accounts.list method that allows advanced account filtering.

Request comparison

Request description Content API for Shopping Merchant API
List sub-accounts
GET /content/v2.1/{merchantId}/accounts GET /accounts/v1/accounts/{providerId}:listSubaccounts
List all accessible accounts
Not available GET /accounts/v1/accounts

Detailed field comparison (Request parameters)

Content API for Shopping ( accounts.list ) Merchant API ( accounts.listSubaccounts ) Notes
merchant_id (path parameter)
provider (path parameter) The ID of the advanced account in the format accounts/{account} .
max_results
page_size The maximum number of accounts to return.
Create a Mobile Website
View Site in Mobile | Classic
Share by: