List product reviews
Stay organized with collections
Save and categorize content based on your preferences.
Merchant API code sample to list product reviews.
Java
// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package shopping.merchant.samples.reviews.v1beta;
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.reviews.v1beta.ListProductReviewsRequest;
import com.google.shopping.merchant.reviews.v1beta.ProductReview;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceClient;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceClient.ListProductReviewsPagedResponse;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to list all the product reviews in a given account. */
public class ListProductReviewsSample {
public static void listProductReviews(String accountId) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
ProductReviewsServiceSettings productReviewsServiceSettings =
ProductReviewsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
try (ProductReviewsServiceClient productReviewsServiceClient =
ProductReviewsServiceClient.create(productReviewsServiceSettings)) {
ListProductReviewsRequest request =
ListProductReviewsRequest.newBuilder()
.setParent(String.format("accounts/%s", accountId))
.build();
System.out.println("Sending list product reviews request:");
ListProductReviewsPagedResponse response =
productReviewsServiceClient.listProductReviews(request);
int count = 0;
// Iterates over all rows in all pages and prints all product reviews.
for (ProductReview element : response.iterateAll()) {
System.out.println(element);
count++;
}
System.out.print("The following count of elements were returned: ");
System.out.println(count);
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
listProductReviews(config.getAccountId().toString());
}
}
PHP
<?php
/**
* Copyright 2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
require_once __DIR__ . '/../../../vendor/autoload.php';
require_once __DIR__ . '/../../Authentication/Authentication.php';
require_once __DIR__ . '/../../Authentication/Config.php';
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Reviews\V1beta\Client\ProductReviewsServiceClient;
use Google\Shopping\Merchant\Reviews\V1beta\ListProductReviewsRequest;
/**
* This class demonstrates how to list all the product reviews in a given account.
*/
class ListProductReviewsSample
{
/**
* Lists all product reviews for a given account.
*
* @param array $config The configuration data for authentication and account ID.
*/
public static function listProductReviewsSample(array $config): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$productReviewsServiceClient = new ProductReviewsServiceClient($options);
// The parent account from which to retrieve reviews.
// Format: accounts/{account}
$parent = sprintf('accounts/%s', $config['accountId']);
// Creates the request message.
$request = (new ListProductReviewsRequest())
->setParent($parent);
// Calls the API and catches and prints any network failures/errors.
try {
printf("Sending list product reviews request:%s", PHP_EOL);
$response = $productReviewsServiceClient->listProductReviews($request);
$count = 0;
// Iterates over all rows in all pages and prints all product reviews.
foreach ($response->iterateAllElements() as $element) {
printf("%s%s", $element->serializeToJsonString(), PHP_EOL);
$count++;
}
printf("The following count of elements were returned: %d%s", $count, PHP_EOL);
} catch (ApiException $e) {
print $e->getMessage() . PHP_EOL;
}
}
/**
* Helper to execute the sample.
*/
public function callSample(): void
{
$config = Config::generateConfig();
self::listProductReviewsSample($config);
}
}
// Run the script.
$sample = new ListProductReviewsSample();
$sample->callSample();
Python
# -*- coding: utf-8 -*-
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""This class demonstrates how to list all the product reviews in a given account."""
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_reviews_v1beta import ListProductReviewsRequest
from google.shopping.merchant_reviews_v1beta import ProductReviewsServiceClient
def list_product_reviews(account_id: str) -> None:
"""Lists all product reviews for a given account.
Args:
account_id: The ID of the Merchant Center account.
"""
# Gets OAuth credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = ProductReviewsServiceClient(credentials=credentials)
# The parent account from which to retrieve reviews.
# Format: accounts/{account}
parent = f"accounts/{account_id}"
# Creates the request.
request = ListProductReviewsRequest(parent=parent)
# Makes the request and catches and prints any error messages.
try:
print("Sending list product reviews request:")
response = client.list_product_reviews(request=request)
count = 0
# Iterates over all reviews in all pages and prints them.
for element in response:
print(element)
count += 1
print(f"The following count of elements were returned: {count}")
except RuntimeError as e:
print(e)
if __name__ == "__main__":
# Gets the merchant account ID from the user.
merchant_account_id = configuration.Configuration().read_merchant_info()
list_product_reviews(merchant_account_id)
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-07-21 UTC.
[null,null,["Last updated 2025-07-21 UTC."],[[["\u003cp\u003eThis code sample demonstrates how to list all product reviews associated with a specific account using the Google Merchant API.\u003c/p\u003e\n"],["\u003cp\u003eThe Java code uses the \u003ccode\u003eProductReviewsServiceClient\u003c/code\u003e to send a \u003ccode\u003eListProductReviewsRequest\u003c/code\u003e and retrieve product review data.\u003c/p\u003e\n"],["\u003cp\u003eThe sample iterates through all the pages of the response to print every product review, as well as provide a count of the reviews retrieved.\u003c/p\u003e\n"],["\u003cp\u003eThe code uses a Google credential setup to be able to connect to the service, and it leverages a configuration setup to set the Account ID.\u003c/p\u003e\n"]]],[],null,["# List product reviews\n\nMerchant API code sample to list product reviews. \n\n### Java\n\n // Copyright 2023 Google LLC\n //\n // Licensed under the Apache License, Version 2.0 (the \"License\");\n // you may not use this file except in compliance with the License.\n // You may obtain a copy of the License at\n //\n // https://www.apache.org/licenses/LICENSE-2.0\n //\n // Unless required by applicable law or agreed to in writing, software\n // distributed under the License is distributed on an \"AS IS\" BASIS,\n // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n // See the License for the specific language governing permissions and\n // limitations under the License.\n\n package shopping.merchant.samples.reviews.v1beta;\n\n import com.google.api.gax.core.FixedCredentialsProvider;\n import com.google.auth.oauth2.GoogleCredentials;\n import com.google.shopping.merchant.reviews.v1beta.ListProductReviewsRequest;\n import com.google.shopping.merchant.reviews.v1beta.ProductReview;\n import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceClient;\n import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceClient.ListProductReviewsPagedResponse;\n import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceSettings;\n import shopping.merchant.samples.utils.Authenticator;\n import shopping.merchant.samples.utils.Config;\n\n /** This class demonstrates how to list all the product reviews in a given account. */\n public class ListProductReviewsSample {\n\n public static void listProductReviews(String accountId) throws Exception {\n GoogleCredentials credential = new Authenticator().authenticate();\n\n ProductReviewsServiceSettings productReviewsServiceSettings =\n ProductReviewsServiceSettings.newBuilder()\n .setCredentialsProvider(FixedCredentialsProvider.create(credential))\n .build();\n\n try (ProductReviewsServiceClient productReviewsServiceClient =\n ProductReviewsServiceClient.create(productReviewsServiceSettings)) {\n\n ListProductReviewsRequest request =\n ListProductReviewsRequest.newBuilder()\n .setParent(String.format(\"accounts/%s\", accountId))\n .build();\n\n System.out.println(\"Sending list product reviews request:\");\n ListProductReviewsPagedResponse response =\n productReviewsServiceClient.listProductReviews(request);\n\n int count = 0;\n\n // Iterates over all rows in all pages and prints all product reviews.\n for (ProductReview element : response.iterateAll()) {\n System.out.println(element);\n count++;\n }\n System.out.print(\"The following count of elements were returned: \");\n System.out.println(count);\n } catch (Exception e) {\n System.out.println(e);\n }\n }\n\n public static void main(String[] args) throws Exception {\n Config config = Config.load();\n listProductReviews(config.getAccountId().toString());\n }\n } \n https://github.com/google/merchant-api-samples/blob/c6de994268c785ce22af0065932518a9ac5b3c03/java/src/main/java/shopping/merchant/samples/reviews/v1beta/ListProductReviewsSample.java\n\n### PHP\n\n \u003c?php\n /**\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n require_once __DIR__ . '/../../../vendor/autoload.php';\n require_once __DIR__ . '/../../Authentication/Authentication.php';\n require_once __DIR__ . '/../../Authentication/Config.php';\n use Google\\ApiCore\\ApiException;\n use Google\\Shopping\\Merchant\\Reviews\\V1beta\\Client\\ProductReviewsServiceClient;\n use Google\\Shopping\\Merchant\\Reviews\\V1beta\\ListProductReviewsRequest;\n\n /**\n * This class demonstrates how to list all the product reviews in a given account.\n */\n class ListProductReviewsSample\n {\n /**\n * Lists all product reviews for a given account.\n *\n * @param array $config The configuration data for authentication and account ID.\n */\n public static function listProductReviewsSample(array $config): void\n {\n // Gets the OAuth credentials to make the request.\n $credentials = Authentication::useServiceAccountOrTokenFile();\n\n // Creates options config containing credentials for the client to use.\n $options = ['credentials' =\u003e $credentials];\n\n // Creates a client.\n $productReviewsServiceClient = new ProductReviewsServiceClient($options);\n\n // The parent account from which to retrieve reviews.\n // Format: accounts/{account}\n $parent = sprintf('accounts/%s', $config['accountId']);\n\n // Creates the request message.\n $request = (new ListProductReviewsRequest())\n -\u003esetParent($parent);\n\n // Calls the API and catches and prints any network failures/errors.\n try {\n printf(\"Sending list product reviews request:%s\", PHP_EOL);\n $response = $productReviewsServiceClient-\u003elistProductReviews($request);\n\n $count = 0;\n // Iterates over all rows in all pages and prints all product reviews.\n foreach ($response-\u003eiterateAllElements() as $element) {\n printf(\"%s%s\", $element-\u003eserializeToJsonString(), PHP_EOL);\n $count++;\n }\n printf(\"The following count of elements were returned: %d%s\", $count, PHP_EOL);\n } catch (ApiException $e) {\n print $e-\u003egetMessage() . PHP_EOL;\n }\n }\n\n /**\n * Helper to execute the sample.\n */\n public function callSample(): void\n {\n $config = Config::generateConfig();\n self::listProductReviewsSample($config);\n }\n }\n\n // Run the script.\n $sample = new ListProductReviewsSample();\n $sample-\u003ecallSample(); \n https://github.com/google/merchant-api-samples/blob/c6de994268c785ce22af0065932518a9ac5b3c03/php/examples/reviews/v1beta/ListProductReviewsSample.php\n\n### Python\n\n # -*- coding: utf-8 -*-\n # Copyright 2025 Google LLC\n #\n # Licensed under the Apache License, Version 2.0 (the \"License\");\n # you may not use this file except in compliance with the License.\n # You may obtain a copy of the License at\n #\n # http://www.apache.org/licenses/LICENSE-2.0\n #\n # Unless required by applicable law or agreed to in writing, software\n # distributed under the License is distributed on an \"AS IS\" BASIS,\n # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n # See the License for the specific language governing permissions and\n # limitations under the License.\n \"\"\"This class demonstrates how to list all the product reviews in a given account.\"\"\"\n\n from examples.authentication import configuration\n from examples.authentication import generate_user_credentials\n from google.shopping.merchant_reviews_v1beta import ListProductReviewsRequest\n from google.shopping.merchant_reviews_v1beta import ProductReviewsServiceClient\n\n\n def list_product_reviews(account_id: str) -\u003e None:\n \"\"\"Lists all product reviews for a given account.\n\n Args:\n account_id: The ID of the Merchant Center account.\n \"\"\"\n # Gets OAuth credentials.\n credentials = generate_user_credentials.main()\n\n # Creates a client.\n client = ProductReviewsServiceClient(credentials=credentials)\n\n # The parent account from which to retrieve reviews.\n # Format: accounts/{account}\n parent = f\"accounts/{account_id}\"\n\n # Creates the request.\n request = ListProductReviewsRequest(parent=parent)\n\n # Makes the request and catches and prints any error messages.\n try:\n print(\"Sending list product reviews request:\")\n response = client.list_product_reviews(request=request)\n\n count = 0\n # Iterates over all reviews in all pages and prints them.\n for element in response:\n print(element)\n count += 1\n print(f\"The following count of elements were returned: {count}\")\n\n except RuntimeError as e:\n print(e)\n\n\n if __name__ == \"__main__\":\n # Gets the merchant account ID from the user.\n merchant_account_id = configuration.Configuration().read_merchant_info()\n list_product_reviews(merchant_account_id)\n\n https://github.com/google/merchant-api-samples/blob/c6de994268c785ce22af0065932518a9ac5b3c03/python/examples/reviews/v1beta/list_product_reviews_sample.py"]]