Google Shopping Scraper - Price Comparison & UPC
Pricing
from $1.30 / 1,000 product results
Google Shopping Scraper - Price Comparison & UPC
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.
Pricing
from $1.30 / 1,000 product results
Rating
0.0
(0)
Developer
Wrenfield Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Google Shopping Price Comparison & Barcode (UPC/EAN) Lookup
Compare prices across stores on Google Shopping and look up products by barcode (UPC, EAN, GTIN). For every product you get the lowest, highest and typical price, the number of sellers, rating and reviews. You also get every seller offer, with price, shipping, total price, condition, availability, seller rating and a direct link to the store (not a Google redirect). Works in 45 countries. A built-in price-monitoring mode tells you what changed since the last run.
Use it to:
- Compare prices for a product across Amazon, Walmart, Target, Best Buy, eBay and thousands of other stores.
- Look up barcodes (UPC-A, EAN-13, EAN-8, GTIN-14) in bulk and get the product name, brand, image and current market prices.
- Monitor prices and sellers daily. See price drops, price increases, and new or removed sellers.
- Do MAP / reseller monitoring, competitor price intelligence, repricing, and catalog enrichment from barcodes.
💸 $2 per 1,000 products and $0.50 per 1,000 seller offers (the top Google Shopping scrapers in the Store charge a median $3.25 per 1,000). Try it on Apify's free plan ($5 of monthly credit, no credit card).
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 |
What data can you get?
Product rows (type: "product") | Offer rows (type: "offer") |
|---|---|
| Title, brand, Google product ID, GTIN / UPC / EAN | Seller (store) name and domain |
| Image, description, specifications (with details) | Price, shipping, total price, currency |
| Rating and number of reviews | Condition (new / used / refurbished) |
| Min / max / typical price, cheapest total price, cheapest seller | Availability (in stock / out of stock) |
| Number of sellers, headline price and seller | Seller rating and reviews count |
| Google Shopping URL, manufacturer URL | Direct offer URL at the store |
Price-monitoring status (priceMonitor.status: new / price_drop / ...) | Change status vs. the previous run |
How to use
- Enter search queries (e.g.
coffee maker), barcodes (UPC/EAN/GTIN), Google product IDs or Google Shopping product URLs. You can mix them in one run. - Pick the country (and optionally the language and a city/ZIP/region), plus sort, price range and condition filters.
- Keep Get all seller offers on to get every store's price for each product, and set max offers per product.
- Run the Actor and download the results as JSON, CSV or Excel, or read them through the API.
Input example
{"queries": ["coffee maker"],"gtins": ["025500304076", "5060033821114"],"productIds": ["14870010698400265781"],"country": "US","sort": "price_low_to_high","minPrice": 20,"condition": "new","maxProducts": 50,"fetchOffers": true,"maxOffersPerProduct": 20}
Output example
Product row (barcode lookup):
{"type": "product","title": "FOLGERS Classic Roast Ground Coffee","productId": "14870010698400265781","gtin": "025500304076","gtin14": "00025500304076","brand": "Folgers","rating": 4.52,"reviewsCount": 10152,"price": 16.48,"minPrice": 12.96,"maxPrice": 43.99,"typicalPrice": 19.99,"cheapestSeller": "Home Depot","sellersCount": 10,"currency": "USD","googleShoppingUrl": "https://www.google.com/search?ibp=oshop&q=oid:...&prds=...","match": {"method": "barcode_search", "confidence": "high", "searchRank": 1},"source": {"type": "barcode", "input": "025500304076"},"country": "US"}
Offer row:
{"type": "offer","productId": "14870010698400265781","gtin": "025500304076","productTitle": "FOLGERS Classic Roast Ground Coffee","sellerName": "Target","offerTitle": "Folgers Classic Medium Roast Ground Coffee - 25.9oz","price": 15.49,"shippingPrice": 5.99,"totalPrice": 21.48,"currency": "USD","condition": "new","availability": "in_stock","sellerRating": 4.46,"sellerReviewsCount": 2073,"offerUrl": "https://www.target.com/p/folgers-classic-medium-roast-ground-coffee-25-9oz/-/A-13397813","merchantDomain": "target.com"}
The dataset has ready-made views: Products overview, Seller offers, Price changes and Product details. A SUMMARY record in the key-value store has run statistics (products, offers, matched and unmatched barcodes, changes).
Barcode (UPC / EAN / GTIN) lookup – how matching works
Google Shopping does not have an exact "search by barcode" filter. A barcode query often returns the right product mixed with unrelated sponsored "deals". This Actor does not just take the first result:
- It validates the barcode (check digit; UPC-A, EAN-13, EAN-8, GTIN-14 and UPC with or without the leading zero).
- It checks what the barcode is on the web and builds a fingerprint of the product name and brand from several independent sources.
- It picks the Google Shopping product that matches that fingerprint, and it must contain the brand. If nothing matches, it searches Google Shopping by the product's name.
- Each row tells you how it matched:
match.method(barcode_searchorname_search) andmatch.confidence(high/medium/low).
Barcodes that cannot be found come back as a not_found row, and you are not charged for them.
Measured accuracy (October 2026, 21 real barcodes across the US, UK and Germany): 18 matched the correct product, 2 were not found, and 1 matched the wrong product (since fixed by the brand check). Some multipacks and flavour variants match to the product family. Check match.confidence if you need exact pack sizes.
Price monitoring (compare with the previous run)
Set Price monitoring store name (e.g. my-prices) and schedule the Actor daily with the same input. Each product row gets a priceMonitor object with:
status:new,price_drop,price_increase,sellers_changedorunchangedpreviousPrice,priceChange,priceChangePctandpreviousRunAtnewSellersandremovedSellers
Each offer gets a changeStatus, and removed offers are reported too. Turn on Output only changes to get only what changed, which is ideal for alerts through webhooks, Slack, email or Zapier. Snapshots are kept per country, language and location in a named key-value store on your account.
Chain with Walmart Product Scraper (UPC → price comparison)
Walmart Product Scraper outputs each product's upc and gtin14. Feed them into this Actor to see what every other store charges for the same item:
- Run Walmart Product Scraper (search, category or item IDs).
- Collect the
upcvalues from its dataset. With the API:GET https://api.apify.com/v2/datasets/<datasetId>/items?fields=upc&clean=true. - Start this Actor with
{"gtins": [<those UPCs>], "country": "US", "fetchOffers": true}.
You can automate this with an Apify integration (webhook) on the Walmart run that starts this Actor, or with a few lines in Python:
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")wm = client.actor("wrenfield-data/walmart-product-scraper").call(run_input={"searchKeywords": ["air fryer"], "maxItems": 20})upcs = [i["upc"] for i in client.dataset(wm["defaultDatasetId"]).iterate_items() if i.get("upc")]gs = client.actor("wrenfield-data/google-shopping-price-comparison").call(run_input={"gtins": upcs, "country": "US"})for row in client.dataset(gs["defaultDatasetId"]).iterate_items():print(row["type"], row.get("title") or row.get("sellerName"), row.get("minPrice") or row.get("totalPrice"))
The other direction also works. Offers sold on walmart.com include walmartItemId, which you can pass to Walmart Product Scraper's productIds to get stock, the Buy Box seller and reviews.
Reliability and performance
The Actor uses a commercial SERP data provider to get Google Shopping results, so there are no CAPTCHAs, blocked IPs or proxies for you to manage. Failed upstream requests are retried automatically. Offer links are resolved from Google redirects to the store's own URL.
Measured on the Apify platform (October 2026), 3 runs (US, UK, DE), each with 8 search products plus barcodes and up to 10 offers per product:
| Test | Result |
|---|---|
| Search products | 24/24 returned with prices and offers |
| Barcode lookups | 19/21 found (18 correct) |
| Products / offers | 43 products, 379 offers; 100% of offers with a direct store URL |
| Run time | 4–5 minutes per run (upstream processing; larger runs are processed in parallel) |
Pricing
This Actor uses pay-per-event pricing. You only pay for results. Platform usage (compute) is included.
| Event | Price |
|---|---|
Product (product-result) | $2.00 per 1,000 products |
Barcode lookup (barcode-lookup) – a product matched from a UPC/EAN/GTIN, details included | $0.012 per matched barcode |
Product details (product-details) – product ID/URL lookups, or Product details for search results for search results | $0.003 per product |
Seller offer (offer-result) | $0.50 per 1,000 offers |
Actor start (actor-start) | $0.001 per run |
Example: comparing prices for 100 barcodes with 10 offers each costs about 100 × ($0.002 + $0.012) + 1,000 × $0.0005 = $1.90. Barcodes that are not found, retries and failed requests are free. Set Maximum cost per run in the run options to cap your spend. The Actor stops cleanly at that limit and keeps everything collected so far.
On the Apify Free plan, runs are limited to 10 products and 10 offers per product. Upgrade to any paid plan to remove these limits.
Related tools
Compare marketplace prices with retailer-level data from Walmart, Home Depot, Lowe's and Shopify stores.
- Walmart Scraper: Walmart prices, stock, sellers and reviews
- Home Depot & Lowe's Scraper: prices, store stock and aisle locations
- Shopify Store Scraper & Price Monitor: full catalogs and price/stock change alerts for any Shopify store
All of these are maintained by the same developer and export flat JSON, CSV or Excel, so you can feed one tool's dataset into the next.
FAQ
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).
How do I get a Google product ID?
It is the number in a google.com/shopping/product/<ID> URL, or the catalogid in a newer Google Shopping URL. You can paste either form, or take productId from a previous run.
Is it legal to scrape Google Shopping? The Actor collects publicly visible product listings and prices. It does not log in or access personal data. You are responsible for how you use the data and for compliance with the laws and terms that apply to you. This Actor is not affiliated with, endorsed by, or sponsored by Google.
Can I use it from Python, Make, Zapier, n8n or an AI agent? Yes. You can call it through the Apify API, the Python or JavaScript client, the Apify MCP server or any Apify integration.
Acceptable use
- This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by Google, DataForSEO or the merchants whose offers appear.
- Don't use the data to build a competing search engine, or otherwise to compete with or harm Google or the other search engines the data comes from.
- The Actor may not be used from, or for people or organizations in, Russia, Belarus, Cuba, Iran, Syria, Myanmar, North Korea, Crimea or the Russian-occupied territories of Ukraine.
- You are responsible for using the results lawfully, including privacy laws such as GDPR for any personal data they contain.