Stay organized with collections
Save and categorize content based on your preferences.
You can use the aggregateProductStatuses.list method to get a high-level
overview of the status of products in your Merchant Center account. This is
useful for monitoring the overall health of your product data without needing to
fetch every individual product. This method provides the total number of
products you have, broken down by status (approved, pending, disapproved), and
also lists any issues that are affecting your products.
Special considerations
There are special considerations when using the aggregateProductStatuses.list
method.
Data availability: Expect a delay of more than 30 minutes between
when a product is inserted or updated and when its status is reflected in the
aggregateProductStatuses response.
Issue consistency: The issue titles and descriptions returned by the
aggregateProductStatuses.list method are intended to be consistent with the
issues returned by the Products API. However, they might differ from the
issue descriptions shown in the Merchant Center user interface.
Get an overview of all product statuses
This example shows how to retrieve a list of AggregateProductStatus resources.
Each resource represents the status of products for a specific combination of
destination and country. Calling
aggregateProductStatuses.list
without any parameters returns all available statuses for your account.
GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/aggregateProductStatuses
Get product statuses for a specific country and destination
You can filter the results to see the status for a specific country and
destination by using the filter query parameter with the
aggregateProductStatuses.list
method. For example: country = "US" AND reportingContext = "SHOPPING_ADS".
For more information, see Filter syntax.
GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/aggregateProductStatuses?filter=countryCode%3D"US"%20AND%20reportingContext%3D"SHOPPING_ADS"
[[["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,["# View product statistics and issues\n\nYou can use the `aggregateProductStatuses.list` method to get a high-level\noverview of the status of products in your Merchant Center account. This is\nuseful for monitoring the overall health of your product data without needing to\nfetch every individual product. This method provides the total number of\nproducts you have, broken down by status (approved, pending, disapproved), and\nalso lists any issues that are affecting your products.\n\nSpecial considerations\n----------------------\n\nThere are special considerations when using the `aggregateProductStatuses.list`\nmethod.\n\n- **Data availability** : Expect a delay of more than 30 minutes between when a product is inserted or updated and when its status is reflected in the `aggregateProductStatuses` response.\n- **Issue consistency** : The issue titles and descriptions returned by the `aggregateProductStatuses.list` method are intended to be consistent with the issues returned by the Products API. However, they might differ from the issue descriptions shown in the Merchant Center user interface.\n\nGet an overview of all product statuses\n---------------------------------------\n\nThis example shows how to retrieve a list of `AggregateProductStatus` resources.\nEach resource represents the status of products for a specific combination of\ndestination and country. Calling\n[`aggregateProductStatuses.list`](/merchant/api/reference/rest/accounts_v1/accounts.aggregateproductstatuses/list)\nwithout any parameters returns all available statuses for your account. \n\n GET https://merchantapi.googleapis.com/accounts/v1/accounts/\u003cvar translate=\"no\"\u003e{ACCOUNT_ID}\u003c/var\u003e/aggregateProductStatuses\n\nHere's a sample response from a successful call: \n\n {\n \"aggregateProductStatuses\": [\n {\n \"name\": \"accounts/12345/aggregateProductStatuses/SHOPPING_ADS~US\",\n \"reportingContext\": \"SHOPPING_ADS\",\n \"countryCode\": \"US\",\n \"statistics\": {\n \"approvedCount\": \"1500\",\n \"pendingCount\": \"50\",\n \"disapprovedCount\": \"25\"\n },\n \"issues\": [\n {\n \"issueType\": \"missing_image\",\n \"severity\": \"ERROR\",\n \"numProducts\": \"15\",\n \"sampleProducts\": [\n \"accounts/12345/products/online~en~US~SKU001\",\n \"accounts/12345/products/online~en~US~SKU002\"\n ]\n },\n {\n \"issueType\": \"invalid_price\",\n \"severity\": \"CRITICAL\",\n \"numProducts\": \"10\",\n \"sampleProducts\": [\n \"accounts/12345/products/online~en~US~SKU003\"\n ]\n }\n ]\n },\n {\n \"name\": \"accounts/12345/aggregateProductStatuses/FREE_LISTINGS~US\",\n \"reportingContext\": \"FREE_LISTINGS\",\n \"countryCode\": \"US\",\n \"statistics\": {\n \"approvedCount\": \"1510\",\n \"pendingCount\": \"50\",\n \"disapprovedCount\": \"15\"\n },\n \"issues\": [\n {\n \"issueType\": \"missing_image\",\n \"severity\": \"ERROR\",\n \"numProducts\": \"15\",\n \"sampleProducts\": [\n \"accounts/12345/products/online~en~US~SKU001\",\n \"accounts/12345/products/online~en~US~SKU002\"\n ]\n }\n ]\n }\n ]\n }\n\nGet product statuses for a specific country and destination\n-----------------------------------------------------------\n\nYou can filter the results to see the status for a specific country and\ndestination by using the `filter` query parameter with the\n[`aggregateProductStatuses.list`](/merchant/api/reference/rest/accounts_v1/accounts.aggregateproductstatuses/list)\nmethod. For example: `country = \"US\" AND reportingContext = \"SHOPPING_ADS\"`.\nFor more information, see [Filter syntax](/merchant/api/guides/accounts/filter-syntax). \n\n GET https://merchantapi.googleapis.com/accounts/v1/accounts/\u003cvar translate=\"no\"\u003e{ACCOUNT_ID}\u003c/var\u003e/aggregateProductStatuses?filter=countryCode%3D\"US\"%20AND%20reportingContext%3D\"SHOPPING_ADS\"\n\nHere's a sample response from a successful call: \n\n {\n \"aggregateProductStatuses\": [\n {\n \"name\": \"accounts/12345/aggregateProductStatuses/SHOPPING_ADS~US\",\n \"reportingContext\": \"SHOPPING_ADS\",\n \"countryCode\": \"US\",\n \"statistics\": {\n \"approvedCount\": \"1500\",\n \"pendingCount\": \"50\",\n \"disapprovedCount\": \"25\"\n },\n \"issues\": [\n {\n \"issueType\": \"missing_image\",\n \"severity\": \"ERROR\",\n \"numProducts\": \"15\",\n \"sampleProducts\": [\n \"accounts/12345/products/online~en~US~SKU001\",\n \"accounts/12345/products/online~en~US~SKU002\"\n ]\n },\n {\n \"issueType\": \"invalid_price\",\n \"severity\": \"CRITICAL\",\n \"numProducts\": \"10\",\n \"sampleProducts\": [\n \"accounts/12345/products/online~en~US~SKU003\"\n ]\n }\n ]\n }\n ]\n }"]]