Home / Tools / Google Shopping Scraper
E-commerce & reviews
Google Shopping Scraper
Compare Google Shopping prices by keyword, barcode (UPC/EAN/GTIN), product ID or URL. Every seller offer with price, shipping, total, condition and stock, plus min/max/typical price. Price monitoring flags price drops and new or removed sellers. 45 countries.
- Price: $2 per 1,000 × product result
- Prefilled example: finished in 43 s on Oct 19, 2026 (Done: 2 products, 8 offers, 1/1 barcodes matched.)
- Works with: Apify Console, REST API, Python, JavaScript, MCP (Claude, Cursor, VS Code), n8n, Make, Zapier
- Last updated: 2026-10-19
Sample output
| Product | Min price | Max price | Sellers | Rating |
|---|---|---|---|---|
| FOLGERS Classic Roast Ground Coff… | 15.49 | 37.88 | 5 | 4.54 |
| Mr. Coffee 12 Cup Programmable Co… | 39.99 | 274.12 | 3 | 4 |
Real rows from the prefilled example run (Oct 19, 2026), 5 of 35+ fields shown. Export as JSON, CSV, Excel or HTML, or read them through the API.
Full JSON of one real output row (8 rows in the example dataset)
{
"type": "product",
"title": "FOLGERS Classic Roast Ground Coffee",
"productId": "14870010698400265781",
"gid": "3245476400833551948",
"gtin": "025500304076",
"gtin14": "00025500304076",
"brand": "Folgers",
"image": "https://encrypted-tbn0.gstatic.com/shopping?q=tbn:ANd9GcRlHx77-x9dpoYEJJ3RAB_y6ZghtVS5N8LUPrcA3jRG9JqFMQxcuMPl0BxGyV7zCMSAn1CudHyJ5w1PVpg0DzzsFkiKNdkBZUtuYDufvGUjFLGkNTsp7DKV",
"rating": 4.54,
"reviewsCount": 18584,
"price": 16.69,
"oldPrice": null,
"minPrice": 15.49,
"maxPrice": 37.88,
"typicalPrice": 21.75,
"minTotalPrice": 16.48,
"cheapestSeller": "Home Depot",
"sellersCount": 5,
"currency": "USD",
"headlineSeller": "Target",
"delivery": "Free delivery on $35+",
"tags": null,
"productUrl": "https://www.folgerscoffee.com/coffee/ground/classic-roast",
"googleShoppingUrl": "https://www.google.com/search?ibp=oshop&q=oid:5318820814816993831&prds=gpcid:3245476400833551948,rds:PC_3245476400833551948|PROD_PC_3245476400833551948,headlineOfferDocid:5318820814816993831,catalogid:14870010698400265781,pvt:hg&hl=en&gl=us&udm=28",
"description": "SKU 46431727- No matter what morning brings, you know you can count on the iconic red Folgers coffee canister for The Best Part of Wakin’ Up. Folgers Classic Roast ground coffee has been loved for generations for its famously fresh aroma and rich, smooth flavor. It’s the quintess...",
"images": [
"https://encrypted-tbn0.gstatic.com/shopping?q=tbn:ANd9GcRlHx77-x9dpoYEJJ3RAB_y6ZghtVS5N8LUPrcA3jRG9JqFMQxcuMPl0BxGyV7zCMSAn1CudHyJ5w1PVpg0DzzsFkiKNdkBZUtuYDufvGUjFLGkNTsp7DKV",
"https://encrypted-tbn3.gstatic.com/shopping?q=tbn:ANd9GcSqkZE6vR4UPCfrLDWe88vkRA2IpFbBYjVdaojVaHKl4hnvFLSxbh-rOmn849VbXvFPxPlDvC9JPbYESaCrOpKjrDVzE4q6H-17OCvETU03jFMKKTfqVF3fog",
"https://encrypted-tbn0.gstatic.com/shopping?q=tbn:ANd9GcRI8tGCN0wuvyi81i5GVPyLHPU3QpOxElox5wvVTXX_WkT5-fauXv5cW__MLs9Fq_pE_NMbgRLs3vcPuYQ2bb8vPog6HYDkXdMH7oLfnqccSDLmhDUM7-uH",
"... 9 more"
],
"specifications": {
"Form Type": "Ground",
"Roast Type": "Medium",
"Aroma": "Fresh aroma",
"Certifications": "Kosher",
"Region of Origin": "Mountain Grown",
"Flavor Notes": "Coffee",
"Flavor Profile": "Smooth, Robust",
"Flavor Type": "Pure",
"Container Type": "Canister",
"Variety Pack": "No",
"Bulk": "No",
"Caffeine Content": "Caffeinated",
"Free Of": "Fat Free",
"Contains": "100% Pure Coffee",
"Dietary Restrictions": "Gluten Free",
"Highlighted Ingredients": "100% Pure Coffee",
"Allergens": "Celery",
"Fat Content": "Fat Free",
"Sugar Content": "0g (Total Sugars)",
"Sustainability Practices": "Proudly roasted in New Orleans",
"Environmental Impact": "0% Total Recycled Content Percent",
"Brewing Method": "French press, Automatic drip",
"Grind Size": "Medium",
"Serving Suggestion": "Share a pot with your crew, Enjoy it by the cup",
"Top Use Cases": "Daily brewing",
"Dietary Needs": "Gluten-free",
"Typical Users": "Coffee lovers",
"Brand": "Folgers",
"Manufacturer": "Folgers",
"Highlighted Features": "Classic Roast",
"Seasonal": "No"
},
"features": null,
"variants": [
{
"title": "6 Pack",
"category": "Pack Size",
"productId": "14870010698400265781",
"url": "https://www.google.com/search?ibp=oshop&q=oid:5318820814816993831&hl=en&gl=us&prds=catalogid:14870010698400265781,gpcid:3245476400833551948,headlineOfferDocid:5318820814816993831,pvo:3,pvt:hg,rds:PC_3245476400833551948|PROD_PC_3245476400833551948,pvf:EhMiCXBhY2sgc2l6ZSoGNiBwYWNr&..."
},
{
"title": "Single",
"category": "Pack Size",
"productId": "14870010698400265781",
"url": "https://www.google.com/search?ibp=oshop&q=oid:5318820814816993831&hl=en&gl=us&prds=catalogid:14870010698400265781,gpcid:3245476400833551948,headlineOfferDocid:5318820814816993831,pvo:3,pvt:hg,rds:PC_3245476400833551948|PROD_PC_3245476400833551948,pvf:EhMiCXBhY2sgc2l6ZSoGc2luZ2xl&..."
},
{
"title": "25.9 oz",
"category": "Size",
"productId": "14870010698400265781",
"url": "https://www.google.com/search?ibp=oshop&q=oid:5318820814816993831&hl=en&gl=us&prds=catalogid:14870010698400265781,gpcid:3245476400833551948,headlineOfferDocid:5318820814816993831,pvo:3,pvt:hg,rds:PC_3245476400833551948|PROD_PC_3245476400833551948,pvf:Eg8iBHNpemUqBzI1Ljkgb3o&pvf=E..."
},
"... 2 more"
],
"match": {
"method": "barcode_search",
"confidence": "high",
"searchRank": 1,
"webName": "folgers classic roast ground coffee medium 25.9 oz"
},
"source": {
"type": "barcode",
"input": "025500304076"
},
"country": "US",
"language": "en",
"location": "United States",
"scrapedAt": "2026-10-19T10:00:38Z"
}Output fields
From the Actor's dataset schema. Every row has the same flat shape, so it drops straight into a spreadsheet, a database or an agent's context.
| Field | Type | Description |
|---|---|---|
type | string | product, offer or not_found (not_found rows are free) |
title | string | Product title |
productId | string | Google Shopping product ID (catalog ID) |
gid | string | Google global product ID |
gtin | string | Barcode you searched (barcode lookups) |
gtin14 | string | Barcode as 14-digit GTIN |
brand | string | Brand (with details) |
image | string | Main image URL |
rating | number | Product rating 1-5 |
reviewsCount | integer | Number of product reviews |
price | number | Headline price shown on Google Shopping |
oldPrice | number | Previous / strike-through price |
minPrice | number | Lowest seller price |
maxPrice | number | Highest seller price |
typicalPrice | number | Median seller price |
minTotalPrice | number | Lowest price incl. shipping |
cheapestSeller | string | Seller with the lowest total price |
sellersCount | integer | Number of sellers (offers returned, or Google's count) |
currency | string | Currency (ISO code) |
headlineSeller | string | Seller shown in search results |
delivery | string | Delivery info |
tags | array | Badges, e.g. LOW PRICE, 10% OFF |
productUrl | string | Brand / product URL |
googleShoppingUrl | string | Google Shopping product link |
Pricing
Pay per result, billed by Apify. No subscription and no minimum. Discount tiers apply automatically on paid Apify plans.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| Product result main Charged once for each product successfully saved to the dataset. | $0.002 | $0.0017 | $0.0015 | $0.0013 |
| Barcode lookup Charged once when a product is matched from a barcode (GTIN/UPC/EAN), with details included. | $0.012 | $0.012 | $0.012 | $0.012 |
| Offer result Charged once for each seller offer successfully saved to the dataset. | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
| Product details Charged once when product details are fetched (product ID/URL lookups, or includeDetails for search rows). | $0.003 | $0.003 | $0.003 | $0.003 |
| Actor start Charged once when the Actor run starts. | $0.001 | $0.001 | $0.001 | $0.001 |
Examples on the Free plan: 100 product results = $0.20, 1,000 product results = $2, 10,000 product results = $20. Apify's Free plan includes $5 of monthly usage credit. Prices read from the Apify API at build time (2026-10-19).
Scheduled price change from 2026-11-02 (Free-plan tier): Product result: $0.002 → $0.003. Paid-plan tiers change accordingly. The table shows today's prices.
Example input
This is the prefilled input on the Store page. Keep it and click Start to see real data in seconds.
{
"queries": [
"coffee maker"
],
"gtins": [
"025500304076"
],
"country": "US",
"sort": "relevance",
"condition": "any",
"maxProducts": 2,
"maxProductsPerQuery": 40,
"fetchOffers": true,
"maxOffersPerProduct": 10,
"includeDetails": false,
"resolveOfferUrls": true,
"onlyChanges": false,
"minPriceChangePct": 0
}Use it from code, no-code or an AI agent
cURL (one request, returns rows)
curl -X POST \
"https://api.apify.com/v2/acts/wrenfield-data~google-shopping-price-comparison/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries": ["coffee maker"], "gtins": ["025500304076"], "country": "US", "sort": "relevance", "condition": "any", "maxProducts": 2, "maxProductsPerQuery": 40, "fetchOffers": true, "maxOffersPerProduct": 10, "includeDetails": false, "resolveOfferUrls": true, "onlyChanges": false, "minPriceChangePct": 0}'Python
# pip install apify-client
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("wrenfield-data/google-shopping-price-comparison").call(
run_input={
"queries": [
"coffee maker"
],
"gtins": [
"025500304076"
],
"country": "US",
"sort": "relevance",
"condition": "any",
"maxProducts": 2,
"maxProductsPerQuery": 40,
"fetchOffers": True,
"maxOffersPerProduct": 10,
"includeDetails": False,
"resolveOfferUrls": True,
"onlyChanges": False,
"minPriceChangePct": 0
},
max_total_charge_usd=1.00, # hard cap for this run
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row)JavaScript / Node
// npm i apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('wrenfield-data/google-shopping-price-comparison').call({
"queries": [
"coffee maker"
],
"gtins": [
"025500304076"
],
"country": "US",
"sort": "relevance",
"condition": "any",
"maxProducts": 2,
"maxProductsPerQuery": 40,
"fetchOffers": true,
"maxOffersPerProduct": 10,
"includeDetails": false,
"resolveOfferUrls": true,
"onlyChanges": false,
"minPriceChangePct": 0
}, { maxTotalChargeUsd: 1 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);MCP (Claude, Cursor, VS Code, any MCP client)
{
"mcpServers": {
"wrenfield-google-shopping-price-comparison": {
"url": "https://mcp.apify.com?tools=wrenfield-data/google-shopping-price-comparison"
}
}
}Remote MCP server hosted by Apify. Sign in with OAuth on first use, or send Authorization: Bearer <APIFY_TOKEN>. The tool appears as wrenfield-data--google-shopping-price-comparison. More client setups on the MCP page.
n8n, Make, Zapier
Use the official Apify node or app, pick Run Actor, enter wrenfield-data/google-shopping-price-comparison and paste the input JSON above. Then read the run's dataset items. Ready-made n8n workflows are on the n8n templates page.
FAQ
How much does Google Shopping Scraper cost?
$0.002 per product result on the Apify Free plan ($2 per 1,000), billed per result by Apify with no subscription. Plus $0.012 per barcode lookup. Plus $0.0005 per offer result. Plus $0.003 per product details. Plus $0.001 per actor start. Higher Apify plans get the discounted tiers shown in the pricing table. You can cap any run with a maximum cost.
Can I search Google Shopping by UPC or EAN?
Yes. Put the barcodes in Barcodes (UPC / EAN / GTIN). Each barcode is matched to a Google Shopping product and you get its offers. See "how matching works" above.
How accurate is the barcode lookup?
In our tests about 86% of barcodes matched the exact product and about 10% were not listed on Google Shopping in that country (those are free). Every row has match.confidence. Use high and medium for automated pipelines.
Why is a barcode "not found"?
The product isn't sold by any store on Google Shopping in the chosen country, or the barcode isn't publicly known (common for private-label products). Try the country where the product is sold.
Which countries are supported?
45 countries, including the US, UK, Germany, France, Italy, Spain, the Netherlands, Canada, Australia, India, Japan and Brazil. You can also set a city, ZIP code or region for local prices.
Does it include shipping and tax?
shippingPrice and totalPrice are included whenever Google shows them. In the US, prices exclude sales tax, as on Google Shopping.
Can I get all sellers for a product?
Yes. Turn on Get all seller offers and set max offers per product (up to 100).
Related tools
Walmart Scraper
Prices, stock, sellers, UPC and reviews, with local ZIP pricing.
Home Depot & Lowe's Scraper
Price, store stock, aisle and reviews for any ZIP code.
Shopify Store Scraper
Any Shopify catalog, plus price-drop and restock monitoring.
Tripadvisor Reviews
Reviews for hotels, restaurants and attractions.
Compare and plan
Try Google Shopping Scraper now
Open it on Apify, keep the prefilled example and click Start. The Apify Free plan includes $5 of monthly credit, no card needed.
Open on Apify