Google Shopping Scraper: Prices, Stores & Reviews avatar

Google Shopping Scraper: Prices, Stores & Reviews

Pricing

from $0.80 / 1,000 products

Go to Apify Store
Google Shopping Scraper: Prices, Stores & Reviews

Google Shopping Scraper: Prices, Stores & Reviews

Scrape Google Shopping for any search and country: product title, price, original price and discount, store, rating, review count, delivery, returns, thumbnail and Google product IDs. Plain HTTP, about 50 products per search in seconds, $1 per 1,000 products.

Pricing

from $0.80 / 1,000 products

Rating

0.0

(0)

Developer

Nathan Carter

Nathan Carter

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Google Shopping Scraper is an Apify Actor that returns Google Shopping results for any search and country: price, discount, store, rating and reviews for each product. It's built for code and AI agents: one JSON row per product, a clean schema and runs that finish in seconds.

Quick facts

  • What you get, one row per product: title, price, currency, priceText, oldPrice, oldPriceText, discountPercent, store and more (all fields below).
  • Any country: set country.
  • Fast: plain HTTP through Apify's Google SERP proxy, no browser. A search takes a few seconds.
  • Price: $1.00 per 1,000 products (less on paid Apify plans). Apify's free $5 monthly credit covers 5,000 products.
  • AI agents: connect https://mcp.apify.com?tools=automationnation/google-shopping-scraper (setup below).

What can you do with it?

  • Price monitoring: track competitors' prices and discounts on Google Shopping every day.
  • Market research: see which brands, stores and price points dominate a product category.
  • E-commerce and dropshipping: find products, price ranges and the stores winning the listings.
  • SEO and Google Merchant Center: check where your products appear for the searches that matter.

How to use it

  1. Click Try for free.
  2. Add one or more search queries.
  3. Set the country and how many products you want per search.
  4. Click Start and download the results as JSON, CSV or Excel, or read them through the API.

Input example

{
"queries": [
"wireless earbuds",
"running shoes"
],
"maxResultsPerQuery": 50,
"country": "us"
}

Output example

{
"query": "wireless earbuds",
"position": 1,
"title": "Skullcandy Push Play Active True Wireless Earbuds",
"price": 52.99,
"currency": "USD",
"priceText": "$52.99",
"oldPrice": 65,
"oldPriceText": "$65",
"discountPercent": 18,
"store": "Best Buy",
"moreStores": true,
"delivery": "Free delivery by Mon",
"returns": "15-day returns",
"rating": 4,
"reviewCount": 547,
"badges": [],
"otherDetails": [],
"productId": "15106459321654506756",
"offerId": "12288145598200427993",
"catalogId": "7433441786563944211",
"groupId": "7662081716680170791",
"imageId": "16021554784907982874",
"thumbnail": null,
"googleShoppingUrl": "https://www.google.com/search?ibp=oshop&q=Skullcandy+Push+Play+Active+True+Wireless+Earbuds&prds=catalogid%3A7433441786563944211%2Cgpcid%3A7662081716680170791%2CheadlineOfferDocid%3A12288145598200427993%2CimageDocid%3A16021554784907982874%2CproductDocid%3A15106459321654506756%2Cpvt%3Ahg&hl=en&gl=us",
"page": 1,
"country": "us",
"language": "en",
"searchUrl": "https://www.google.com/search?…",
"scrapedAt": "2026-10-05T10:12:00.000Z"
}

Output fields

FieldDescription
queryThe search this row came from.
positionRank in the results for this search, from 1.
titleProduct title as shown on Google Shopping.
priceCurrent price as a number, in the country's currency.
currencyISO currency code (USD, GBP, EUR…).
priceTextPrice as displayed.
oldPricePrevious price when Google shows a discount.
oldPriceTextPrevious price as displayed.
discountPercentDiscount in percent.
storeThe store selling it (the cheapest or featured offer).
moreStoresTrue when more stores sell the same product.
deliveryDelivery text, e.g. Free delivery by Mon.
returnsReturns policy text, e.g. 30-day returns.
ratingProduct rating out of 5.
reviewCountNumber of product reviews.
badgesOther labels on the card, e.g. Nearby, 9 mi.
otherDetailsAny other detail lines on the card.
productIdGoogle product ID (data-pid).
offerIdGoogle offer ID.
catalogIdGoogle catalog ID.
groupIdGoogle product group ID.
imageIdGoogle image ID.
thumbnailProduct image URL, when Google provides one.
googleShoppingUrlOpens the product on Google Shopping.
pageResults page it came from.
countryGoogle country (gl).
languageGoogle interface language (hl).
searchUrlThe Google search URL.
scrapedAtWhen it was scraped (ISO).

The Run summary (key-value store OUTPUT) lists each search with its status and result count.

How much does it cost?

You pay per product saved; searches that fail are free.

ProductsFree & Bronze plansSilverGold and above
1,000$1.00$0.90$0.80
10,000$10.00$9.00$8.00

Set a maximum cost per run in the run options; the Actor stops at your limit and keeps everything saved up to then.

Use it with AI agents (MCP)

Hosted: add https://mcp.apify.com?tools=automationnation/google-shopping-scraper to Claude, ChatGPT, Cursor or another MCP client and sign in with Apify.

Local (Claude Desktop or Cursor config):

{
"mcpServers": {
"google-shopping-scraper": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--tools", "automationnation/google-shopping-scraper"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}

Then ask, for example: "Compare prices for the top 20 wireless earbuds on Google Shopping UK."

Integrations and API

curl -X POST "https://api.apify.com/v2/acts/automationnation~google-shopping-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries": ["wireless earbuds"], "maxResultsPerQuery": 10, "country": "us"}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("automationnation/google-shopping-scraper").call(run_input={"queries": ["wireless earbuds"], "maxResultsPerQuery": 10})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"])
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('automationnation/google-shopping-scraper').call({"queries": ["wireless earbuds"], "maxResultsPerQuery": 10});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Schedules, webhooks, Google Sheets, Slack, n8n, Make and Zapier work through Apify's integrations.

FAQ

How many products does one search return? About 50, the number Google shows on a Shopping results page. Run more specific searches (brand, model, feature) to cover a category.

Which countries work? Any Google Shopping country: set country (us, gb, de, fr, in, au, ca…). Prices come in that country's currency.

Do I get the store's product link? Each row has googleShoppingUrl, which opens the product on Google Shopping with all offers. The store's own link sits behind Google's product viewer.

Can I sort by price? Google ignores price sorting on these pages, so the Actor returns Google's order. Sort the dataset by price in the Apify Console, Excel or your code.

Is it legal to scrape Google? The Actor reads public Google results, like a person searching. Use the data in line with the laws and terms that apply to you.

Why is it so fast and cheap? It reads Google's results pages over plain HTTP through Apify's Google SERP proxy: no browser, about a second per page.

More Google data from AutomationNation

Questions or a missing field? Open an issue on the Issues tab; fixes usually ship within a day.