Google Shopping Scraper: Prices, Stores & Reviews
Pricing
from $0.80 / 1,000 products
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
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,storeand 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
- Click Try for free.
- Add one or more search queries.
- Set the country and how many products you want per search.
- 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
| Field | Description |
|---|---|
query | The search this row came from. |
position | Rank in the results for this search, from 1. |
title | Product title as shown on Google Shopping. |
price | Current price as a number, in the country's currency. |
currency | ISO currency code (USD, GBP, EUR…). |
priceText | Price as displayed. |
oldPrice | Previous price when Google shows a discount. |
oldPriceText | Previous price as displayed. |
discountPercent | Discount in percent. |
store | The store selling it (the cheapest or featured offer). |
moreStores | True when more stores sell the same product. |
delivery | Delivery text, e.g. Free delivery by Mon. |
returns | Returns policy text, e.g. 30-day returns. |
rating | Product rating out of 5. |
reviewCount | Number of product reviews. |
badges | Other labels on the card, e.g. Nearby, 9 mi. |
otherDetails | Any other detail lines on the card. |
productId | Google product ID (data-pid). |
offerId | Google offer ID. |
catalogId | Google catalog ID. |
groupId | Google product group ID. |
imageId | Google image ID. |
thumbnail | Product image URL, when Google provides one. |
googleShoppingUrl | Opens the product on Google Shopping. |
page | Results page it came from. |
country | Google country (gl). |
language | Google interface language (hl). |
searchUrl | The Google search URL. |
scrapedAt | When 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.
| Products | Free & Bronze plans | Silver | Gold 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 ApifyClientclient = 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
- Google Images Scraper: full-size image URLs with size and source.
- Google News Scraper: headlines, sources, dates and article URLs.
- Google Videos Scraper: videos from YouTube, TikTok and more, with channel and duration.
- Google Jobs Scraper: job listings with salaries and apply links in 26 countries.
- Google Trends Scraper: interest over time, related queries and trending searches.
- Google AI Overview Tracker: whether Google's AI Overviews cite your site.
- AI Visibility Tracker: your brand in Google AI Overviews, Gemini and Claude answers.
Questions or a missing field? Open an issue on the Issues tab; fixes usually ship within a day.