Google Shopping Scraper
Pricing
from $2.00 / 1,000 products
Google Shopping Scraper
Scrapes Google Shopping results for any search in 68 countries: title, price, old price, currency, store, rating, reviews, delivery, returns, thumbnail and product link, about 40 products per request, with price filters and optional offers from every store.
Pricing
from $2.00 / 1,000 products
Rating
0.0
(0)
Developer
Mina
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does Google Shopping Scraper do?
Google Shopping Scraper collects Google Shopping results for any search words in 68 countries: the product title, price as a number with its currency, the old (was) price, the store selling it, the brand, the star rating and review count, the delivery and returns text, the thumbnail, Google's product page link and the product's ids. Each Google request brings back about 40 products, so runs are fast and cheap. Turn on one option and it also saves every store's offer for each product, with the store's own product link.
Try it with the prefilled search: open the Actor, click Start, and 40 wireless earbuds from US stores arrive in under a minute. Because it runs on the Apify platform, you also get API access, scheduled runs, integrations (Google Sheets, Make, Zapier, webhooks), run monitoring and Apify Proxy built in, so there is nothing to set up to read Google Shopping.
Why scrape Google Shopping?
- Price monitoring: track what your products and your competitors' cost across stores, every day, in each country you sell in.
- Competitor and assortment research: see which brands and stores Google shows for your category keywords, and at which prices.
- Deal finding: collect discounted products (old price, "% OFF" badge) or everything within a price range.
- Market research: compare prices, ratings and delivery terms for the same search in different countries and currencies.
- Product catalog enrichment: get brands, ratings, review counts and thumbnails for product names.
How to scrape Google Shopping
- Type your search words into Search words or Google Shopping links, one
search per line (for example
wireless earbuds). - Or search on Google Shopping and paste the address bar link instead; its country, language and filters are used as they are.
- Set Max products per search (100 by default) and the Country.
- Optionally set a Minimum price and Maximum price, or turn on Include every store's offers.
- Click Start, then download the products when the run finishes.
Input
Everything is set on the Input tab. In JSON, the input looks like this:
{"queries": ["wireless earbuds","https://www.google.de/search?q=kopfh%C3%B6rer&udm=28&hl=de&gl=de"],"maxProductsPerQuery": 100,"countryCode": "us","languageCode": "en","minPrice": 20,"maxPrice": 150,"includeOffers": false}
| Field | Type | Default | What it does |
|---|---|---|---|
queries | array of strings | (required) | Search words, or Google Shopping result links (with or without https://, udm=28 or the older tbm=shop). API callers can also send {"url": "..."} objects. |
maxProductsPerQuery | integer | 100 | Products to save per search, 1 to 500. |
countryCode | string | us | Two-letter country whose stores, prices and currency you want, such as gb, de, in or br (68 countries; uk works too). |
languageCode | string | en | Interface language (Google's hl), such as de or pt-BR. It changes the labels Google writes, such as delivery and returns. |
minPrice | number | none | Only products at this price or more, in the country's currency. |
maxPrice | number | none | Only products at this price or less, in the country's currency. |
includeOffers | boolean | false | Also save up to 5 stores' offers per product, with each store's own link (one more Google request per product). |
A pasted link keeps its own country, language and filters. The input settings fill in only what the link leaves out.
Output
One row per product, in Google's order. A real row from the prefilled search:
{"query": "wireless earbuds","position": 3,"title": "soundcore P31i","price": 34.99,"currency": "USD","oldPrice": 50,"merchant": "soundcore US","moreMerchants": true,"brand": "Soundcore","rating": 4.8,"reviewCount": 1117,"ratingDrawSuspect": false,"delivery": "Free delivery","returns": null,"badge": "30% OFF","thumbnail": "https://encrypted-tbn1.gstatic.com/shopping?q=tbn:ANd9GcRl7vZkyy9eXzlVJGyFLScPRAK90BT7UqABaGow9wRYl3xmoTjwnfWJ0W6o9ZuswnyMcCB1p-Gwb1Cwt54Jy5nddtSXFPbM0WxHnX-T6A3uIcYrATP7Y9f7a9E","productId": "9824472621292795091","offerId": "18409718912619203230","productLink": "https://www.google.com/search?q=wireless+earbuds&ibp=oshop&udm=28&hl=en&gl=us&prds=catalogid%3A9824472621292795091%2Cpvt%3Ahg","country": "us","searchUrl": "https://www.google.com/search?q=wireless+earbuds&udm=28&hl=en&gl=us","scrapedAt": "2026-10-20T14:40:57.980817+00:00"}
With Include every store's offers on, each row also has merchantUrl and
an offers list. A real offer from an airpods pro 3 search:
{"merchant": "Best Buy","price": 228,"currency": "USD","oldPrice": null,"title": "Apple - AirPods Pro 3, Wireless Active Noise Cancelling Earbuds with Heart Rate Sensing Feature - White","merchantRating": null,"availability": "In stock online","shipping": "Free delivery","link": "https://www.bestbuy.com/product/apple-airpods-pro-3-wireless-active-noise-cancelling-earbuds-with-heart-rate-sensing-feature-white/JJGCQLYK5F/sku/12213138?ref=212&loc=marketplace"}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel, or read it through the Apify API.
Data fields
| Field | Type | Description |
|---|---|---|
query | string | The search words the product was found for. |
position | integer | Rank of the product in the results for that search, from 1. |
title | string | Product title as Google shows it. |
price | number | Current full price, read in the country's number style (1.299,00 € is 1299). For a price range, the lowest price. Monthly instalments (R$ 699,94/mês x 18) are never used as the price. |
currency | string | ISO currency code, such as USD, EUR or INR. |
oldPrice | number or null | The crossed-out "was" or usual price (such as Was $249, 40% off ₹799), when the product is discounted. |
merchant | string or null | The store whose offer Google shows. Null when Google shows only "& more". |
moreMerchants | boolean | True when other stores sell the product too ("& more"). |
brand | string or null | Brand Google lists for the product. |
rating | number or null | Star rating out of 5, as Google printed it on that page (approximate; see the FAQ). |
reviewCount | integer or null | Number of reviews behind the rating. |
ratingDrawSuspect | boolean | True when the page the row came from had 5 or more products rated exactly 5.0 on 100+ reviews, a sign that Google served a version whose ratings differ from a browser's. See the FAQ. |
delivery | string or null | Delivery text, such as Free delivery or Free delivery by Fri. |
returns | string or null | Returns text, such as 30-day returns. |
badge | string or null | Google's label on the card, such as 30% OFF, SALE or LOW PRICE. |
thumbnail | string | Product image served by Google. |
productId | string | Google's catalog id of the product, or for a product sold by one store only, the id of that listing. |
offerId | string or null | Google's id of the offer shown. |
productLink | string or null | Google's product page with every store's price. Null for products sold by one store only, which have no such page. |
country | string | Country of the search. |
searchUrl | string | Google Shopping link for the search, to open it yourself. |
merchantUrl | string or null | Offers option only: the store's own product page for the offer Google shows (or the cheapest offer). |
offers | array | Offers option only: up to 5 store offers, each with merchant, price, currency, oldPrice, title, merchantRating, availability, shipping and the store's link. Empty for products sold by one store only. |
scrapedAt | string | When the row was saved (ISO 8601, UTC). |
How much does it cost to scrape Google Shopping?
You pay per product saved; see the Pricing tab for the exact price. With Include every store's offers on, each product saved with offers is charged one extra event, also listed on the Pricing tab. Searches that return nothing and entries that are not searches are never charged. Each Google request brings back about 40 products, so the platform usage stays small: a run of 240 products across two searches used about $0.02 of platform resources. The Actor stops by itself when a run reaches the maximum cost you set for it.
Tips for scraping Google Shopping
- How many products can I get? Google lists about 250 to 300 products for
a broad search; later pages partly repeat earlier ones, and duplicates are
removed, so
positioncounts unique products. - Pick the country, not just the language. Stores, prices and currency follow the country; the language only changes Google's own labels.
- Price filters are checked: Google sometimes ignores a price range, so such pages are asked again and products outside the range are dropped.
- Offers take longer. Each product's page is one more Google request (five are read at a time), so a run with offers on takes a few seconds more per product sold by several stores; only those products have offers.
- Use several close searches (
wireless earbuds,) to cover a category.noise cancelling earbuds - Each Google page takes from a few seconds to about half a minute; several searches are read at the same time.
FAQ, disclaimers, and support
Is it legal to scrape Google Shopping? The Actor reads only the public results Google shows to anyone without logging in: products, prices and store names. It does not collect personal data. Web data scraping is legal in many cases, but if you are unsure, consult a lawyer.
Why did a search give nothing? Google had no products for it, or Google
answered it without Shopping. Such a search is listed in the FAILED_INPUTS
record of the run's key-value store with the
reason, and nothing is charged for it. Countries where Google offers no
Shopping at all, such as Egypt and Kenya, are not accepted.
Can I sort by price? Not yet: Google's sort options are not applied to
results read this way. Use minPrice and maxPrice to narrow the range
instead.
Are sponsored products included? The products are those of Google Shopping's results grid; Google shows no separate sponsored listings there for these searches, so the Actor has no sponsored flag.
Are the ratings reliable? Treat them as approximate. Ratings are saved
exactly as Google printed them on the page the Actor read, but Google serves
different versions of the same page, and on some of them most ratings on the
page differ from what a browser shows (for example a product rated 4.1 in a
browser shows 2.2, or many products show exactly 5.0 on thousands of reviews).
Such pages are common for the requests this Actor makes. Rows from a page
with 5 or more products rated exactly 5.0 on 100+ reviews have
ratingDrawSuspect: true. If you need reliable ratings, check them in a
browser or re-run the search and compare.
Why is merchant empty on some rows? Google showed only "& more" on that
card. Turn on Include every store's offers to get the stores and their
prices.
Found a bug or need another field? Open an issue on the Issues tab and it will be looked at. Need a custom scraper or a different output format? Get in touch through the Issues tab too.