Google Shopping Scraper — Product Prices, Ratings & Sellers
Pricing
$2.60 / 1,000 product scrapeds
Google Shopping Scraper — Product Prices, Ratings & Sellers
Scrape Google Shopping search results. Extract product titles, prices, ratings, seller info, delivery details, and product URLs. Support for multiple countries, pagination, and direct product URLs.
Pricing
$2.60 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
junipr
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Google Shopping Scraper
Extract product pricing, ratings, merchant info, and delivery data from Google Shopping at scale. Monitor competitor prices, build comparison tables, and track market trends with structured data exports. Works across 30+ countries with automatic currency detection and multi-language support.
Google Shopping Scraper is built for e-commerce professionals who need reliable, structured product data without the overhead of building and maintaining their own scraping infrastructure. Whether you're tracking competitor pricing daily, building a price comparison tool, or researching market trends, this actor gives you clean, analysis-ready data in seconds.
What Data Can You Extract?
| Field | Description |
|---|---|
title | Product title |
price.current | Current price as a numeric value (not a string) |
price.original | Pre-discount price when on sale |
price.currency | ISO 4217 currency code (USD, EUR, GBP, etc.) |
price.discountPercent | Calculated discount percentage |
price.priceRange | Min/max price for variant products |
merchant.name | Seller/merchant name |
merchant.rating | Merchant rating (0-5) |
merchant.reviewCount | Number of merchant reviews |
merchant.isVerified | Google-verified merchant status |
productRating.value | Product star rating (0-5) |
productRating.count | Number of product reviews |
delivery.free | Whether shipping is free |
delivery.cost | Shipping cost as numeric value |
delivery.estimatedDate | Expected delivery date |
brand | Brand name |
gtin | Global Trade Item Number (barcode) |
mpn | Manufacturer Part Number |
isSponsored | Whether the listing is a paid ad |
thumbnailUrl | Product image URL |
badges | Special labels like "Best Seller", "Top Quality Store" |
All price fields are returned as numeric values ready for calculations, sorting, and database storage — not raw strings that require additional parsing.
How to Use
Zero-config start — just provide a product query:
{"queries": ["wireless headphones"]}
That's it. The actor will search Google Shopping and return up to 20 structured product listings with pricing, ratings, merchant info, and delivery details.
Using the Apify API:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('junipr/google-shopping').call({queries: ['iPhone 15 Pro', 'Samsung Galaxy S24'],country: 'us',resultsPerQuery: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Found ${items.length} products`);
Input Configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
queries | string[] | — | Product search queries (max 100) |
urls | string[] | — | Direct Google Shopping URLs (max 100) |
country | string | "us" | Country code (us, gb, de, fr, au, ca, etc.) |
language | string | "en" | Language code (en, de, fr, es, etc.) |
resultsPerQuery | integer | 20 | Products per query (1-100) |
paginate | boolean | false | Enable multi-page scraping |
maxResultsPerQuery | integer | 60 | Max products when paginating (1-500) |
sortBy | string | "relevance" | Sort: relevance, price_low, price_high, rating |
minPrice | number | — | Minimum price filter |
maxPrice | number | — | Maximum price filter |
condition | string | "all" | Product condition: all, new, used, refurbished |
includeSponsored | boolean | true | Include sponsored/ad listings |
Common configurations:
Price range filter:
{ "queries": ["coffee machine"], "minPrice": 50, "maxPrice": 200 }
Multi-country comparison:
{ "queries": ["laptop"], "country": "de", "language": "de" }
Output Format
Each product is a structured JSON object:
{"query": "wireless headphones","position": 1,"isSponsored": false,"title": "Sony WH-1000XM5 Wireless Noise Canceling Headphones","brand": "Sony","price": {"current": 279.99,"original": 399.99,"currency": "USD","currencySymbol": "$","priceString": "$279.99","discountPercent": 30,"priceRange": { "min": null, "max": null }},"merchant": {"name": "Best Buy","rating": 4.7,"reviewCount": 12453,"isVerified": true},"productRating": {"value": 4.5,"count": 8234,"countLabel": "8,234 reviews"},"delivery": {"free": true,"cost": 0,"estimatedDate": "Fri, Apr 4"},"country": "us","scrapedAt": "2025-04-01T12:00:00.000Z"}
Use Cases
- E-commerce price monitoring — Track competitor prices daily with scheduled runs. Get alerts when prices drop below thresholds.
- Brand protection — Find unauthorized resellers listing your products on Google Shopping. Cross-reference GTINs to identify gray market sellers.
- Market research — Analyze pricing trends across categories, countries, and time periods. Compare merchant distribution and market share.
- Procurement benchmarking — Research supplier pricing before negotiations. Compare the same product across dozens of merchants instantly.
- Price comparison tools — Feed structured product data into your comparison engine. Numeric prices and currency codes are ready for direct use.
- Dropshipping research — Find pricing benchmarks and profit margins by comparing wholesale vs retail prices across merchants.
Pricing
Pay-Per-Event: $2.60 per 1,000 products scraped.
Pricing includes all platform compute costs — no hidden fees.
You only pay for successfully extracted products. Failed pages, blocked requests, and queries with zero results are not billed.
| Scenario | Products | Cost |
|---|---|---|
| Single query (20 products) | 20 | $0.05 |
| Daily price check (50 products) | 500 | $1.30 |
| Weekly market research (6,000 products) | 6,000 | $15.60 |
| Comprehensive catalog (30,000 products) | 30,000 | $78.00 |
Compared to SerpAPI Google Shopping ($50+ per 1,000 results), this actor is 19x more affordable while providing richer data fields including delivery info, merchant ratings, and product identifiers.
FAQ
Why does Google Shopping require residential proxies?
Google Shopping aggressively blocks datacenter IP addresses. Residential proxies mimic real user traffic from home internet connections, which Google does not block. This actor defaults to Apify's residential proxy network, which requires a paid Apify plan ($49+/month). Free-plan users can provide their own residential proxy URL in the input configuration.
How accurate are the prices?
All prices are parsed into numeric values with 100% accuracy on the numeric conversion. The actor handles multiple price formats including US ($1,234.56), European (1.234,56), and various currency symbols. If a price cannot be parsed, price.current is set to null and the raw priceString is preserved for manual review.
Can I monitor prices over time with scheduled runs?
Yes. Set up a scheduled run on Apify (daily, hourly, weekly) with your product queries. Each run produces a new dataset. Use Apify's webhook integrations to pipe results to Google Sheets, a database, or your own API for trend analysis.
Does it work for all countries?
Google Shopping is available in 30+ countries. The actor supports all of them via the country parameter. Popular markets include US, UK, Germany, France, Australia, Canada, Japan, India, and Brazil. Currency and language are automatically configured based on the country code.
What happens when Google changes its layout?
The actor uses multiple fallback selectors and robust parsing logic to handle layout variations. If Google makes a major structural change, the actor will log a PARSE_ERROR and continue attempting extraction with alternative selectors. We monitor for breaking changes and push updates quickly.
Can I filter by condition (new/used/refurbished)?
Yes. Set the condition parameter to "new", "used", or "refurbished" to filter results. The default is "all" which shows products in any condition.
How do I get all seller offers for a product?
Use the paginate option with maxResultsPerQuery set to a higher value (e.g., 100-500). This retrieves more results which often include multiple merchants selling the same product. You can then group results by productId or gtin to see all available offers.
Is scraping Google Shopping legal?
Google Shopping results are publicly accessible to any anonymous user. The hiQ v. LinkedIn Supreme Court precedent established that scraping publicly accessible data may be protected. However, this actor should be used responsibly and in compliance with applicable laws and Google's Terms of Service. Users are responsible for ensuring their use case complies with local regulations.