Google Shopping Scraper
Pricing
Pay per event
Google Shopping Scraper
Search Google Shopping and extract product listings with prices, ratings, reviews, merchant names, and availability. Compare prices across stores for any product. Browser-based scraper that requires no API key. Export product data to JSON, CSV, or Excel.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
0
Bookmarked
4
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🛒 What does Google Shopping Scraper do?
Google Shopping Scraper extracts structured product listing data from Google Shopping search results — no API key required, no login needed. Enter any search query and get back product titles, prices, merchants, ratings, review counts, delivery info, images, and direct product URLs in seconds.
The scraper is browser-based using Playwright with residential proxies, giving it reliable access to Google Shopping's JavaScript-rendered pages. It supports pagination, multiple countries and languages, price range filters, and four sort orders — so you get exactly the slice of data you need. The easiest way to try it is to open the actor on Apify Store, click Try for free, and run a search query with default settings.
👤 Who is Google Shopping Scraper for?
E-commerce businesses & brands
- Monitor competitor pricing across hundreds of merchants for any product category
- Track how your own products appear (position, price, merchant) in Google Shopping listings
- Detect unauthorized sellers or pricing violations on your products
Price comparison platforms & marketplaces
- Aggregate product data from multiple merchants into a unified catalog
- Build real-time price feeds without relying on merchant APIs
- Identify the lowest-price sources for any product at scale
Dropshippers & wholesale buyers
- Discover profitable price gaps between merchants for arbitrage opportunities
- Find trending products with high ratings and review counts in any niche
- Identify the merchants consistently winning top positions for target queries
Market researchers & data analysts
- Map the competitive landscape for any product category across countries
- Analyze how prices shift seasonally, during promotions, or after supply chain events
- Build benchmarks for product pricing decisions with real market data
SEO & marketing agencies
- Track which merchants appear for client-relevant product queries
- Audit paid shopping placements and organic product visibility
- Monitor competitors' Google Shopping presence over time
✅ Why use this scraper?
- No API key or account required — Google Shopping is fully public; just run and get data
- Browser-based extraction — handles JavaScript-rendered pages that plain HTTP scrapers miss
- Multi-country & multi-language — localize results to 40+ countries and dozens of languages
- Price filters and sort orders — narrow to exactly the price range and ranking you care about
- Structured, flat output — every field is a primitive (number, string), ready for spreadsheets or databases
- Numeric price field —
priceNumericenables sorting, filtering, and arithmetic without string parsing - Scheduled runs — Apify Scheduler lets you run price monitoring automatically, daily or weekly
- Export to any format — JSON, CSV, Excel, XML, and Parquet out of the box
- Full Apify ecosystem — API access, webhooks, Google Sheets integration, Zapier/Make workflows
- Residential proxy rotation — automatic proxy management so you don't have to worry about blocks
📊 What data can you extract from Google Shopping?
| Field | Type | Description |
|---|---|---|
title | string | Product title as shown on Google Shopping |
price | string | Displayed price string (e.g., "$228.00") |
priceNumeric | number | Numeric price value for filtering and arithmetic |
currency | string | Currency code (e.g., USD, EUR, GBP) |
merchant | string | Store or seller name (e.g., "Amazon.com") |
productUrl | string | Direct URL to the product page on the merchant's site |
imageUrl | string | Product image URL (Google CDN) |
rating | number | Average star rating (0–5 scale) |
reviewCount | number | Total number of customer reviews |
delivery | string | Delivery information (e.g., "Free delivery", "Get it by Mon") |
position | number | Position in search results (1 = top result) |
query | string | The search query that produced this result |
scrapedAt | string | ISO 8601 timestamp of when the item was extracted |
13 fields per product. All data points are flat primitives — no nested objects, no arrays to unwrap.
💰 How much does it cost to scrape Google Shopping?
This actor uses pay-per-event pricing — you pay only for what you scrape. No monthly subscription. All platform costs (compute, proxies, storage) are included.
| Free | Starter ($29/mo) | Scale ($199/mo) | Business ($999/mo) | |
|---|---|---|---|---|
| Per product | ~$0.0046 | $0.004 | $0.00312 | $0.0024 |
| 100 products | ~$0.50 | ~$0.44 | ~$0.35 | ~$0.27 |
| 1,000 products | ~$4.64 | $4.04 | $3.16 | $2.44 |
Higher-tier plans (Platinum, Diamond) receive additional volume discounts.
Real-world cost examples:
| Query | Results | Approx. Duration | Cost (Free tier) |
|---|---|---|---|
| "wireless earbuds" (default) | 20 products | ~30s | ~$0.09 |
| "running shoes" | 50 products | ~60s | ~$0.23 |
| "mechanical keyboard" | 100 products | ~90s | ~$0.50 |
| 5 queries × 50 products each | 250 products | ~3 min | ~$1.16 |
On the Free plan ($5 monthly credit), you can scrape roughly 1,000 products before spending your first dollar — enough to evaluate the tool fully.
🚀 How to scrape Google Shopping step by step
- Open Google Shopping Scraper on the Apify Store
- Click Try for free — this opens the actor in Apify Console (free account required)
- In the Search queries field, enter one or more product search terms, e.g.
["wireless earbuds", "noise cancelling headphones"] - Set Max results per query — start with
20to test, increase for bulk collection - Optionally set Country and Language to localize results (e.g.,
"de"for Germany,"fr"for France) - Optionally add Min price and Max price filters to narrow results to a specific price range
- Choose a Sort order:
relevance(default),price_low,price_high, orreview_score - Click Save & Start and wait 30–90 seconds for results to appear
- Click Export to download as JSON, CSV, or Excel — or connect to Google Sheets, webhooks, or your API
Input example — price comparison across multiple queries:
{"queries": ["sony wf-1000xm5", "apple airpods pro", "bose quietcomfort earbuds"],"maxResults": 50,"country": "us","language": "en","sortBy": "price_low"}
Input example — finding top-rated budget products:
{"queries": ["wireless earbuds under 50"],"maxResults": 100,"country": "us","language": "en","minPrice": 10,"maxPrice": 50,"sortBy": "review_score"}
Input example — international price research:
{"queries": ["iPhone 16 Pro"],"maxResults": 30,"country": "de","language": "de"}
⚙️ Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
queries | array of strings | (required) | Product search queries. Each query runs independently and results are labeled with the query that produced them. Example: ["wireless earbuds"]. |
maxResults | integer | 20 | Maximum number of products to extract per query. Google Shopping typically returns up to 200–400 results for broad queries. |
country | string | "us" | Two-letter country code for localized results. Affects which products, merchants, currencies, and prices are shown. Examples: "us", "uk", "de", "fr", "jp", "au", "ca", "in". |
language | string | "en" | Language code for result language. Examples: "en", "de", "fr", "es", "ja". |
minPrice | number | (none) | Minimum price filter in the local currency. Leave empty for no lower bound. |
maxPrice | number | (none) | Maximum price filter in the local currency. Leave empty for no upper bound. |
sortBy | string | "relevance" | Sort order for results. Options: relevance (Google's default ranking), price_low (cheapest first), price_high (most expensive first), review_score (highest rated first). |
📦 Output example
Each scraped product is returned as a flat JSON object. Here is a representative sample from a query for "wireless earbuds" sorted by relevance:
{"title": "Sony WF-1000XM5 Truly Wireless Noise Cancelling Earbuds","price": "$228.00","priceNumeric": 228.0,"currency": "USD","merchant": "Amazon.com","productUrl": "https://www.amazon.com/dp/B0C8S9FMHD","imageUrl": "https://encrypted-tbn0.gstatic.com/shopping?q=tbn:ANd9Gc...","rating": 4.5,"reviewCount": 12847,"delivery": "Free delivery","position": 1,"query": "wireless earbuds","scrapedAt": "2026-03-22T12:00:00.000Z"}
Output from a price-comparison run (multiple queries, sorted by price_low):
[{"title": "Apple AirPods Pro (2nd Generation)","price": "$189.00","priceNumeric": 189.0,"currency": "USD","merchant": "Walmart","productUrl": "https://www.walmart.com/ip/Apple-AirPods-Pro...","imageUrl": "https://encrypted-tbn0.gstatic.com/shopping?q=...","rating": 4.8,"reviewCount": 38221,"delivery": "Free shipping, arrives tomorrow","position": 1,"query": "apple airpods pro","scrapedAt": "2026-03-22T12:00:05.000Z"},{"title": "Bose QuietComfort Earbuds II","price": "$199.00","priceNumeric": 199.0,"currency": "USD","merchant": "Best Buy","productUrl": "https://www.bestbuy.com/site/bose-quietcomfort...","imageUrl": "https://encrypted-tbn0.gstatic.com/shopping?q=...","rating": 4.6,"reviewCount": 5104,"delivery": "Free shipping","position": 1,"query": "bose quietcomfort earbuds","scrapedAt": "2026-03-22T12:00:10.000Z"}]
💡 Tips for best results
- Start with a small maxResults — run 20 items first to confirm the query and filters are set correctly before scaling to hundreds. This saves time and credit.
- Use specific queries —
"sony wf-1000xm5"returns more targeted results than"earbuds". Specific queries are also less likely to hit Google's result-count limits. - Combine price filters with sort — setting
minPrice/maxPricewithsortBy: "review_score"quickly surfaces the best-rated products in a price band. - Use
positionto detect paid placements — items at position 1–3 are often sponsored. Compare sorted-by-relevance vs sorted-by-price to distinguish paid from organic listings. - Try different countries for arbitrage — the same product often has significantly different prices across regions. Run the same query for
"us","uk","de", and"au"to map price disparities. - Schedule for price monitoring — use Apify Scheduler to run the scraper daily or weekly on a fixed set of queries. Export to Google Sheets to track price history automatically.
- Use
priceNumericfor math — all sorting, filtering, and price-change calculations should usepriceNumeric, not thepricestring. - Limit concurrent queries — if you are running 10+ queries in a single run, start with
maxResults: 20per query to keep run duration and cost predictable. - Check
reviewCount— a highratingwith a very lowreviewCount(< 10) is often unreliable. Filter forreviewCount > 100when quality matters.
🔗 Integrations
Google Shopping Scraper connects to the full Apify ecosystem. Here are specific workflow patterns that teams use:
Google Shopping → Google Sheets (daily price tracking)
Schedule the scraper to run each morning on your tracked product queries. Connect the output dataset to Google Sheets via the Apify integration. Use conditional formatting to highlight cells where priceNumeric dropped more than 10% since yesterday.
Google Shopping → Slack (price drop alerts)
Set up a webhook on the actor run. When a run completes, a small script filters results where priceNumeric < threshold and posts a Slack message: "MacBook Pro 16 dropped to $2,199 at B&H Photo." No coding required with Zapier or Make.
Google Shopping → Make/Zapier (competitor monitoring) Build a Make scenario: Google Shopping Scraper → filter for competitor merchant names → log to a Google Sheet → send weekly summary email. Automate brand-map audits without any servers.
Google Shopping → Amazon Scraper (cross-platform price comparison) Run Google Shopping Scraper to find which merchants are selling a product and at what prices, then pass the ASINs or product names to Amazon Scraper to get the full Amazon detail page with additional review data.
Scheduled monitoring runs
Use Apify Scheduler to run weekly sweeps of an entire product category (e.g., "bluetooth speaker" across 10 countries). Store the timestamped results in a persistent dataset for longitudinal market analysis.
Webhooks for real-time pipelines Trigger a webhook on run completion to push results directly into your data warehouse (BigQuery, Snowflake, Redshift) via your ETL pipeline or a Zapier zap.
🤖 Using the Apify API
You can trigger Google Shopping Scraper programmatically from any language via the Apify API.
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/google-shopping-scraper').call({queries: ['wireless earbuds', 'noise cancelling headphones'],maxResults: 50,country: 'us',language: 'en',sortBy: 'price_low',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Scraped ${items.length} products`);console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('automation-lab/google-shopping-scraper').call(run_input={'queries': ['wireless earbuds', 'noise cancelling headphones'],'maxResults': 50,'country': 'us','language': 'en','sortBy': 'price_low',})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(f"Scraped {len(items)} products")print(items[0])
cURL
# Start the runcurl -X POST "https://api.apify.com/v2/acts/automation-lab~google-shopping-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"queries": ["wireless earbuds"],"maxResults": 50,"country": "us","sortBy": "price_low"}'# Fetch results (replace DATASET_ID with the defaultDatasetId from the run response)curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"
Get your API token from Apify Console → Settings → API & Integrations.
🧠 Use with AI agents via MCP
Google Shopping Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).
Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com"}}}
Your AI assistant will use OAuth to authenticate with your Apify account on first use.
Example prompts
Once connected, try asking your AI assistant:
- "Use automation-lab/google-shopping-scraper to find the top 20 wireless earbuds under $100 on Google Shopping, sorted by review score"
- "Scrape Google Shopping for 'standing desk' products and compare prices across Amazon, Walmart, and Best Buy"
- "Search Google Shopping for 'mechanical keyboard' in Germany and give me the three cheapest options with ratings above 4 stars"
Learn more in the Apify MCP documentation.
⚖️ Is it legal to scrape Google Shopping?
Web scraping of publicly available data is generally considered legal based on multiple court rulings, including the landmark HiQ Labs v. LinkedIn case decided by the US Court of Appeals. Google Shopping product listings are fully public — any person can see the same data in a browser without logging in.
Key points:
- The scraper accesses only public product listing data — no login, no personal data, no private information
- Data is collected for legitimate business purposes — market research, price comparison, competitive intelligence
- The scraper uses residential proxies and polite delays to avoid overloading Google's infrastructure
- Apify is a GDPR-compliant platform — data is processed and stored in accordance with European privacy law
Always review and comply with Google's Terms of Service and any applicable laws in your jurisdiction before using scraped data commercially. For enterprise use cases with specific compliance requirements, consult your legal team.
❓ FAQ
How many products can I scrape per query?
Google Shopping typically returns 100–400 results per query, depending on how broad the search term is. Very specific queries (e.g., a specific model number) may return fewer. The scraper handles pagination automatically up to your maxResults limit.
How much does scraping cost on the free plan?
Each run costs a flat $0.035 start fee plus $0.004 per product (Free tier price is slightly higher due to plan multipliers, approximately $0.0046/product). A default run of 20 products costs roughly $0.09. With $5 in free monthly credits, you can run dozens of searches before spending a cent.
Is this better than the Google Shopping API?
Google does not offer a public Shopping product-listing API. The Google Shopping API is a merchant-facing tool for managing your own listings — it does not give you access to competitor or market-wide data. This scraper is the practical alternative for market research and competitive intelligence.
Why are some results missing prices or ratings?
Google Shopping sometimes shows products with incomplete data — for example, a product may not have any reviews yet (reviewCount: 0, rating: null) or may show a price range instead of a single price. In these cases, priceNumeric may be null if no single price can be parsed. This is expected behavior that reflects the actual state of the listing on Google Shopping.
Why am I getting empty results or fewer results than expected?
A few common causes:
- Overly specific or rare query — very niche product names may genuinely have few or no Google Shopping results. Try a broader search term.
- Country restriction — some products are not listed in Google Shopping for certain countries. Try
"us"if results for another country are sparse. - Price filter too narrow — if
minPriceandmaxPriceexclude most products, results will be few. Relax the range or remove filters. - Temporary Google-side issue — retry the run a few minutes later if results are unexpectedly empty.
Can I run multiple queries in parallel?
Yes — the queries array accepts any number of search terms. The scraper processes them sequentially within a single run, labeling each result with the query that produced it via the query field. For large batches (50+ queries), consider splitting into multiple runs to stay within the actor's memory limit.
How often should I run the scraper for price monitoring?
Daily runs are typical for active price monitoring — Google Shopping prices update frequently, especially for consumer electronics and seasonal goods. Use Apify Scheduler with a daily cron (e.g., 0 6 * * * to run at 6 AM) and push results to Google Sheets for automatic tracking.
🔍 Other e-commerce scrapers
Looking to scrape specific merchant platforms or compare pricing across marketplaces? Check out these related actors from automation-lab:
- Amazon Scraper — extract product listings, prices, ratings, and reviews from Amazon
- eBay Scraper — scrape eBay listings including auctions, Buy It Now prices, and seller info
- Walmart Scraper — collect product data from Walmart's online store
- Newegg Scraper — extract tech product listings from Newegg
- Target Scraper — scrape product data from Target's e-commerce site
- Etsy Scraper — collect handmade and vintage product listings from Etsy
- Shopify Store Scraper — extract product catalogs from any Shopify-powered store
- Google Search Results Scraper — scrape organic and paid Google Search results for any keyword