Migrate accountstatuses to Aggregate Product Statuses
Stay organized with collectionsSave and categorize content based on your preferences.
The way you retrieve aggregated product statistics and issues has changed. The
functionality previously available in theaccountstatusesresource in the
Content API for Shopping is now split into dedicated resources in the Merchant
API. This guide explains how to migrate your integration to use the newaggregateProductStatusesresource.
Note: In Merchant API, account-level issues and aggregate product statuses
are split. Also review our guide to migrate fromaccountstatusestoaccount issues.
Key differences
Here are the key differences between the product status features in Content
API for Shopping and Merchant API:
Dedicated resources: Theaccountstatusesresource from Content API
for Shopping is now split. In Merchant API, account-level issues are
available through theaccountissuesresource, while aggregated product statistics and item-level issues are
available through the newaggregateProductStatusesresource.
New resource structure:AggregateProductStatusis a new resource that
represents the statistics and issues for a specific combination of a
reporting context and a country.
Filtering mechanism: Instead of using query parameters likedestinationsto select data, Merchant API uses alistmethod with afilterstring to query for specific reporting contexts and countries.
Channel field removal: Thechannelfield is no longer used. This
information is now implicitly part of thereportingContext.
Requests
Merchant API uses aGETrequest with afilterparameter to retrieve
aggregated product statuses.
GET
https://merchantapi.googleapis.com/issueresolution/v1/{parent=accounts/*}/aggregateProductStatuses
Request URL format
Request description
Content API for Shopping
Merchant API
Get product statistics and issues
GET /content/v2.1/{merchantId}/accountstatuses/{accountId}
GET /issueresolution/v1/accounts/{accountId}/aggregateProductStatuses
Identifiers
The way resources are identified has changed to support the new structure.
Identifier format
Identifier description
Content API for Shopping
Merchant API
Resource Identifier
The resource was identified byaccountId. Specific data slices were selected with query parameters.
The resource name uniquely identifies the data for a specific reporting context and country:accounts/{account}/aggregateProductStatuses/{reportingContext}~{country}.
Methods
The method for retrieving product statuses has been updated to alistmethod
that supports filtering.
Content API for Shopping method
Merchant API method
Availability & notes
accountstatuses.get
aggregateProductStatuses.list
Theaccountstatuses.getmethod returned a single resource containing all product statistics. The newaggregateProductStatuses.listmethod returns a list of resources, one for each reporting context and country combination. Use thefilterparameter to retrieve specific data. For account-level issues, useaccountissues.list.
Detailed field changes
The fields for product statistics and issues have been updated and restructured
in the newAggregateProductStatusresource.
Content API for Shopping
Merchant API
Description
products
aggregate_product_statuses
Theproductsarray is replaced by theaggregate_product_statusesrepeated field in the list response.
destination
reporting_context
Thedestinationfield is replaced byreporting_context, which specifies the program context for the stats.
channel
(no equivalent field)
Thechannelfield is removed. This information is now part of thereporting_context.
statistics
stats
Thestatisticsobject is renamed tostats. Field names within are converted to snake_case, for example,activeCountis nowactive_count.
itemLevelIssues.servability
item_level_issues.severity
Theservabilityenum is replaced by theseverityenum to describe the impact of an issue.
itemLevelIssues.attributeName
item_level_issues.attribute
The fieldattributeNameis renamed toattribute.
itemLevelIssues.documentation
item_level_issues.documentation_uri
The fielddocumentationis renamed todocumentation_uri.
[[["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 2025-08-07 UTC."],[],[],null,["# Migrate accountstatuses to Aggregate Product Statuses\n\nThe way you retrieve aggregated product statistics and issues has changed. The\nfunctionality previously available in the `accountstatuses` resource in the\nContent API for Shopping is now split into dedicated resources in the Merchant\nAPI. This guide explains how to migrate your integration to use the new\n[`aggregateProductStatuses`](/merchant/api/reference/rest/issueresolution_v1/accounts.aggregateProductStatuses)\nresource.\n\n**Note** : In Merchant API, account-level issues and aggregate product statuses\nare split. Also review our guide to migrate from `accountstatuses` to\n[account issues](/merchant/api/guides/compatibility/migrate-view-issues).\n\nKey differences\n---------------\n\nHere are the key differences between the product status features in Content\nAPI for Shopping and Merchant API:\n\n- **Dedicated resources** : The `accountstatuses` resource from Content API for Shopping is now split. In Merchant API, account-level issues are available through the [`accountissues`](/merchant/api/reference/rest/accounts_v1/accounts.issues) resource, while aggregated product statistics and item-level issues are available through the new [`aggregateProductStatuses`](/merchant/api/reference/rest/issueresolution_v1/accounts.aggregateProductStatuses) resource.\n- **New resource structure** : `AggregateProductStatus` is a new resource that represents the statistics and issues for a specific combination of a reporting context and a country.\n- **Filtering mechanism** : Instead of using query parameters like `destinations` to select data, Merchant API uses a `list` method with a `filter` string to query for specific reporting contexts and countries.\n- **Channel field removal** : The `channel` field is no longer used. This information is now implicitly part of the `reportingContext`.\n\nRequests\n--------\n\nMerchant API uses a `GET` request with a `filter` parameter to retrieve\naggregated product statuses.\n\n`GET\nhttps://merchantapi.googleapis.com/issueresolution/v1/{parent=accounts/*}/aggregateProductStatuses`\n\n### Request URL format\n\n| Request description | Content API for Shopping | Merchant API |\n|-----------------------------------|--------------------------------------------------------------|-------------------------------------------------------------------------|\n| Get product statistics and issues | `GET /content/v2.1/{merchantId}/accountstatuses/{accountId}` | `GET /issueresolution/v1/accounts/{accountId}/aggregateProductStatuses` |\n\nIdentifiers\n-----------\n\nThe way resources are identified has changed to support the new structure.\n\n### Identifier format\n\n| Identifier description | Content API for Shopping | Merchant API |\n|------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Resource Identifier | The resource was identified by `accountId`. Specific data slices were selected with query parameters. | The resource name uniquely identifies the data for a specific reporting context and country: `accounts/{account}/aggregateProductStatuses/{reportingContext}~{country}`. |\n\nMethods\n-------\n\nThe method for retrieving product statuses has been updated to a `list` method\nthat supports filtering.\n\n| Content API for Shopping method | Merchant API method | Availability \\& notes |\n|---------------------------------|---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `accountstatuses.get` | `aggregateProductStatuses.list` | The `accountstatuses.get` method returned a single resource containing all product statistics. The new `aggregateProductStatuses.list` method returns a list of resources, one for each reporting context and country combination. Use the `filter` parameter to retrieve specific data. For account-level issues, use `accountissues.list`. |\n\nDetailed field changes\n----------------------\n\nThe fields for product statistics and issues have been updated and restructured\nin the new `AggregateProductStatus` resource.\n\n| Content API for Shopping | Merchant API | Description |\n|---------------------------------|---------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|\n| `products` | `aggregate_product_statuses` | The `products` array is replaced by the `aggregate_product_statuses` repeated field in the list response. |\n| `destination` | `reporting_context` | The `destination` field is replaced by `reporting_context`, which specifies the program context for the stats. |\n| `channel` | (no equivalent field) | The `channel` field is removed. This information is now part of the `reporting_context`. |\n| `statistics` | `stats` | The `statistics` object is renamed to `stats`. Field names within are converted to snake_case, for example, `activeCount` is now `active_count`. |\n| `itemLevelIssues.servability` | `item_level_issues.severity` | The `servability` enum is replaced by the `severity` enum to describe the impact of an issue. |\n| `itemLevelIssues.attributeName` | `item_level_issues.attribute` | The field `attributeName` is renamed to `attribute`. |\n| `itemLevelIssues.documentation` | `item_level_issues.documentation_uri` | The field `documentation` is renamed to `documentation_uri`. |\n| `itemLevelIssues.numItems` | `item_level_issues.product_count` | The field `numItems` is renamed to `product_count`. |"]]