Google Shopping Scraper (Cheap) avatar

Google Shopping Scraper (Cheap)

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Google Shopping Scraper (Cheap)

Google Shopping Scraper (Cheap)

Google Shopping scraper that collects product listings, prices, discounts, ratings, and retailer info by search query, so you can monitor competitor prices, track deals, and build product catalogs without manual lookup.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

Data API

Data API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Google Shopping Product Scraper

Google Shopping Product Scraper

Comparing prices on Google Shopping by hand is slow work: you scroll page after page, copy a name here, a price there, squint at which retailer is actually cheapest. This scraper does the reading for you. Type a search term and it walks the Google Shopping results, then hands back every product as a clean row — name, current price, the pre-discount price, the worked-out discount, star rating, review count, retailer, shipping note, and image. Set a price band, ask for sale items only, point it at any country, and only pay for the products you pull.

What you get

Each product comes back as one row with a steady shape, so results drop straight into a sheet, database, or pricing model. Fields split into three groups:

  • ProductitemName, productCode, itemUrl, imageLink, metadataTags, isUsed, usedCondition
  • PricingpriceLabel, currentPrice, listPriceLabel, listPrice, discountRate, promoBadge
  • Seller and reputationsellerName, sellerIconUrl, multipleSellers, starRating, reviewsTotal, reviewSummary, deliveryInfo, plus resultRank, searchTerm, and collectedAt

Quick start

  1. Hit Try for free and open the input form.
  2. Type what you're after into Search term (for example wireless earbuds).
  3. Optional: set a Lowest price / Highest price band, flip on On sale only, or pick a Target country.
  4. Set a Results limit, press Start, then export as JSON, CSV, Excel, or XML when the run finishes.

How it works

Use cases

  • Price monitoring — track what a product sells for across retailers and catch drops as they happen
  • Competitor research — see who lists a category, at what price, and with what rating
  • Deal hunting — filter to sale items and sort cheapest-first to surface the best offers
  • Catalog building — turn a search term into a structured product feed with prices and images
  • Market analysis — compare pricing and availability across countries and Google domains

Input

FieldTypeRequiredDescription
searchTermstringYesWhat to look up on Google Shopping, e.g. wireless earbuds or samsung galaxy s24. Prefilled with wireless earbuds.
minPriceFilterintegerNoDrop anything priced below this value. Leave blank for no floor.
maxPriceFilterintegerNoDrop anything priced above this value. Leave blank for no ceiling.
sortOrderstringNo0 best match, 1 cheapest first, 2 most expensive first. Default 0.
onlyFreeShippingbooleanNoKeep only products that ship for free. Default false.
onlyOnSalebooleanNoKeep only products with an active discount. Default false.
deviceTypestringNoEmulate a desktop or mobile visitor. Default desktop.
languageCodestringNoTwo-letter result language such as en, de, or fr. Default en.
countryCodestringNoTwo-letter country code for geo-targeting such as us, gb, or de. Default us.
googleHoststringNoGoogle domain to query, e.g. google.co.uk or google.de. Default google.com.
locationNamestringNoPlace name for finer geo-targeting, e.g. Seattle, Washington, United States. Overrides countryCode when set.
resultsLimitintegerNoMost products to return per run. Default 25.
timeoutSecondsintegerNoSeconds to wait on each request before timing out. Default 45.

Example input

{
"searchTerm": "wireless earbuds",
"minPriceFilter": 30,
"maxPriceFilter": 200,
"sortOrder": "1",
"onlyFreeShipping": true,
"languageCode": "en",
"countryCode": "us",
"resultsLimit": 25,
"timeoutSeconds": 45
}

Output

Every matched product becomes one row. Results paginate automatically up to your resultsLimit, duplicates across pages are dropped, and fields a listing does not expose come back as null so your columns stay predictable.

Example output

{
"resultRank": 1,
"productCode": "14665440674095220111",
"itemName": "Sony WF-1000XM5 Wireless Noise-Cancelling Earbuds",
"itemUrl": "https://www.google.com/shopping/product/1234567890",
"sellerName": "Best Buy",
"sellerIconUrl": "https://encrypted-tbn0.gstatic.com/favicon-bestbuy.png",
"priceLabel": "$248.00",
"currentPrice": 248.0,
"listPriceLabel": "$299.99",
"listPrice": 299.99,
"discountRate": 17.3,
"promoBadge": "17% off",
"starRating": 4.6,
"reviewsTotal": 5821,
"reviewSummary": "Superb noise cancelling and a comfortable fit",
"deliveryInfo": "Free delivery",
"metadataTags": ["Noise cancelling", "Bluetooth 5.3"],
"imageLink": "https://encrypted-tbn1.gstatic.com/images?q=example",
"isUsed": false,
"usedCondition": null,
"multipleSellers": true,
"searchTerm": "wireless earbuds",
"collectedAt": "2026-06-29T12:00:00.000000+00:00",
"errorMessage": null
}

Output fields

FieldTypeDescription
resultRanknumberPosition of the product within the results
productCodestringGoogle product identifier
itemNamestringProduct name
itemUrlstringLink to the Google Shopping product page
sellerNamestringRetailer offering the item
sellerIconUrlstringRetailer favicon link
priceLabelstringPrice exactly as shown, e.g. $248.00
currentPricenumberPrice as a number
listPriceLabelstringPre-discount price as shown
listPricenumberPre-discount price as a number
discountRatenumberWorked-out discount percentage
promoBadgestringDeal or promotion badge
starRatingnumberAverage rating out of five
reviewsTotalnumberHow many reviews were left
reviewSummarystringBrief review excerpt
deliveryInfostringShipping and returns note
metadataTagsarrayExtra badges and metadata tags
imageLinkstringProduct image as a link or base64 data URI
isUsedbooleanTrue for a used or refurbished item
usedConditionstringUsed-condition label, e.g. Refurbished
multipleSellersbooleanTrue when several retailers carry the item
searchTermstringThe search term that produced the row
collectedAtstringISO 8601 timestamp of when the row was captured
errorMessagestringFailure reason for the row; null on success

Tips for best results

  • Start small. Run a resultsLimit of 25 first to confirm the output fits your pipeline, then raise it for the full pull.
  • Narrow with a price band. Setting minPriceFilter and maxPriceFilter cuts out noise and keeps the rows on target.
  • Match the market. Pair countryCode, languageCode, and googleHost (e.g. gb + en + google.co.uk) so prices come back in the right currency and locale.
  • Use locationName for city-level reads. A place like New York, New York, United States targets tighter than a country code alone.
  • Raise timeoutSeconds toward 60 on large pulls or slower connections if you see requests time out.

How can I use Google Shopping product data?

How can I use the Google Shopping Product Scraper to monitor prices across retailers? Run your search term on a schedule and each product comes back with currentPrice, listPriceLabel, discountRate, and sellerName. Compare rows over time to chart price moves, and use multipleSellers to see when the same item is listed by more than one retailer.

How can I scrape Google Shopping deals and discounts? Set onlyOnSale to true and sortOrder to cheapest-first. The scraper keeps only discounted products and surfaces the lowest prices, with promoBadge, listPrice, and discountRate spelling out the saving on every row.

How can I build a product catalog or pricing dataset from Google Shopping? Feed in a search term, set resultsLimit to the volume you need, and export to CSV or Excel. Each row carries itemName, productCode, currentPrice, starRating, reviewsTotal, and imageLink — a ready-made feed you can load into a sheet, store, or pricing model.

Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.

Support

Questions, feature requests, or a field you'd like added? Reach out at data.apify@proton.me and we'll get back to you.