Google Shopping Scraper
Pricing
from $2.29 / 1,000 product scrapeds
Google Shopping Scraper
Scrape Google Shopping search results: product titles, prices, sale prices, stores, ratings, review counts, shipping and returns. Filter by price, sale, condition, store and country.
Pricing
from $2.29 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
Google Shopping Scraper
Google Shopping Scraper extracts product listings from Google Shopping for any search term: product titles, brands, current and original prices, discounts, store names, ratings, review counts, condition, shipping and returns, in 29 countries. Export the data as JSON, CSV or Excel, or pull it through the Apify API.
| Search Google Shopping by keyword in 29 countries, sort by price or rating, keep only products in a price range, on sale, with free shipping or free returns, in new, used or refurbished condition, or from the stores you name, and get one clean row per product. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Use the Apify Actor "parsebird/google-shopping-scraper" to scrape Google Shopping search results. Call it with the apify-client package: client.actor("parsebird/google-shopping-scraper").call(run_input={"searchQueries": ["nike running shoes"], "maxResults": 50, "country": "us"}), then read items from client.dataset(run["defaultDatasetId"]).iterate_items(). Inputs: searchQueries (array of strings, required), maxResults (integer per query, default 50), country (us, gb, ca, au, nz, ie, de, at, ch, fr, be, nl, es, it, pt, se, dk, no, pl, in, jp, kr, sg, my, ph, br, mx, za, ae; default us), language (ISO 639-1 code, default en), sortBy (BEST_MATCH, LOWEST_PRICE, HIGHEST_PRICE, TOP_RATED), minPrice and maxPrice (integers in local currency), productCondition (ANY, NEW, USED, REFURBISHED), stores (array of store names), onSale, freeShipping, freeReturns (booleans). Each dataset item is one product with: search_query, position, page, product_id, catalog_id, gpc_id, offer_id, product_title, brand, product_photo, product_rating, product_num_reviews, price, price_value, original_price, original_price_value, on_sale, percent_off, badge, store_name, more_stores_available, product_condition, condition_label, shipping, returns, country, language, search_url, scraped_at. API docs: https://apify.com/parsebird/google-shopping-scraper/api. Get an API token at https://console.apify.com/settings/integrations. Pricing is pay per product saved.
What is Google Shopping Scraper?
Google Shopping Scraper is a Google Shopping API alternative that turns any Google Shopping search into structured data. Type a product search the way you would on Google, choose a country, and the Actor collects the product cards Google shows: title, brand, price, sale price, store, rating, number of reviews, condition, delivery and returns.
The easiest way to try it is to press Start with the prefilled search (nike running shoes). You get your first products in a few seconds.
What can Google Shopping Scraper do?
- 🔎 Scrape several searches in one run. Add as many search queries as you need. Each query is scraped and paginated separately.
- 🌍 Get local prices in 29 countries. Results are pinned to the country you pick, so you get that market's stores, prices and currency. The Actor checks the currency of every page and retries if Google serves another region.
- ↕️ Sort like on Google. Best match, price low to high, price high to low, or rating high to low.
- 🏷️ Filter the results. Price range, on sale only, free shipping only, free returns only, new / used / refurbished, and specific stores.
- 📦 Get clean data. Prices come as the text Google shows (
$46.97) and as numbers (46.97). Ratings and exact review counts are numbers, and duplicate cards are removed. - ⚙️ Use the Apify platform. Run it on a schedule for daily price monitoring, call it from the Apify API, and send results to Google Sheets, Slack, Make, Zapier or a webhook with integrations. Download results as JSON, CSV, Excel, XML or HTML.
What data can you extract from Google Shopping?
| Field | Description |
|---|---|
product_title | Product name as shown on Google Shopping |
brand | Brand name Google assigns to the product |
price / price_value | Current price as text and as a number |
original_price / original_price_value | Previous or usual price when the product is discounted |
on_sale / percent_off / badge | Discount flag, percentage off and the card badge (for example 37% OFF) |
store_name | Store selling the offer shown on the card (for example Best Buy, eBay - seller) |
more_stores_available | true when Google says the product is sold by more stores (& more) |
product_rating / product_num_reviews | Average product rating and number of reviews |
product_condition / condition_label | NEW, USED or REFURBISHED, plus Google's label such as Pre-owned |
shipping / returns | Delivery and return text, for example Free delivery by Tue, Free 30-day returns |
product_photo | Product image URL |
product_id, catalog_id, gpc_id, offer_id, product_cluster_id | Google's identifiers for the product and the offer |
search_query, position, page, search_url | The search that found the product, its rank and the Google Shopping URL of that page |
Fields stay null when Google does not show them on the card. For example, many products have no shipping text, and products sold by several stores may show only & more instead of a store name.
How to scrape Google Shopping
- Open Google Shopping Scraper in Apify Console (an Apify account is needed).
- In Search queries, enter one or more product searches, for example
nike running shoesoriPhone 16. - Set Max products per query and pick a Country.
- Optional: choose Sort by and any filters such as price range, condition, stores, on sale, free shipping or free returns.
- Click Start and wait for the run to finish.
- Open the Output tab to see the products, or export them as JSON, CSV or Excel.
How much does it cost to scrape Google Shopping?
Google Shopping Scraper uses pay-per-event pricing. You pay only for products saved to your dataset. Compute and proxy costs are included in the price, so platform usage is not billed separately.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
product-scraped (per product) | $0.00329 | $0.00299 | $0.00249 | $0.00229 |
| Per 1,000 products | $3.29 | $2.99 | $2.49 | $2.29 |
One event is charged for each product saved to the dataset. Scraping 1,000 Google Shopping products costs $3.29 on the Free plan and $2.29 on Gold. Products removed by your filters are not charged. You can set a maximum cost per run in the run options, and the Actor stops once that limit is reached.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchQueries | array of strings | Yes | — | Product searches, one per line |
maxResults | integer | No | 50 | Maximum products saved per query (1–1000) |
country | string | No | us | Google Shopping country (29 supported, see the input form) |
language | string | No | en | Interface language code, for example en, de, fr, ja |
sortBy | string | No | BEST_MATCH | BEST_MATCH, LOWEST_PRICE, HIGHEST_PRICE or TOP_RATED |
minPrice | integer | No | — | Minimum price in the country's currency |
maxPrice | integer | No | — | Maximum price in the country's currency |
productCondition | string | No | ANY | ANY, NEW, USED or REFURBISHED |
stores | array of strings | No | [] | Keep products from these stores only (case-insensitive, partial match) |
onSale | boolean | No | false | Keep only discounted products |
freeShipping | boolean | No | false | Keep only products with free delivery |
freeReturns | boolean | No | false | Keep only products that show free returns |
Example input:
{"searchQueries": ["iPhone 16"],"country": "us","language": "en","maxResults": 20,"sortBy": "LOWEST_PRICE","minPrice": 500,"maxPrice": 1200,"productCondition": "NEW"}
Output example
Each dataset item is one Google Shopping product. Download the dataset in JSON, CSV, Excel, XML or HTML.
{"type": "product","search_query": "nike running shoes","position": 5,"page": 1,"product_id": "17595205775049529424","catalog_id": "17595205775049529424","gpc_id": "5477693794596520766","offer_id": "1089652071209512702","product_cluster_id": "5477693794596520766","product_title": "Nike Men's Revolution 8 Running Shoes","brand": "Nike","product_photo": "https://static.nike.com/a/images/t_web_pdp_535_v2/f_auto,u_9ddf04c7-2a9a-4d76-add1-d15af8f0263d,c_scale,fl_relative,w_1.0,h_1.0,fl_layer_apply/a7dd159c-25c7-4c07-b708-075f1eb61ece/NIKE+REVOLUTION+8.png","product_rating": 5,"product_num_reviews": 4750,"price": "$46.97","price_value": 46.97,"price_from": false,"original_price": "$75","original_price_value": 75,"on_sale": true,"percent_off": "37%","badge": "37% OFF","store_name": "nike.com","more_stores_available": true,"product_condition": "NEW","condition_label": null,"shipping": null,"returns": "Free 60-day returns","country": "us","language": "en","search_url": "https://www.google.com/search?q=nike+running+shoes&udm=28&hl=en&gl=us","scraped_at": "2026-10-21T11:01:35+00:00"}
The Output tab has two table views: Products (photo, title, brand, price, store, rating, reviews) and Offers & pricing (price, original price, discount, condition, store, shipping and returns).
Use the Google Shopping Scraper API
Start runs and read results from your own code with the Apify API and its clients.
Python (apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("parsebird/google-shopping-scraper").call(run_input={"searchQueries": ["nike running shoes", "adidas running shoes"],"maxResults": 50,"country": "us","sortBy": "LOWEST_PRICE",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["product_title"], item["price"], item["store_name"])
JavaScript (apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('parsebird/google-shopping-scraper').call({searchQueries: ['nike running shoes'],maxResults: 50,country: 'gb',onSale: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => console.log(item.product_title, item.price, item.store_name));
Use cases
- Price monitoring: track prices and discounts of your products or a competitor's on a daily schedule.
- Competitor research: see which stores sell a product, at what price, and how often it is discounted.
- Market and assortment analysis: compare brands, price ranges, ratings and review counts across a category.
- Retail and marketplace analysis: check how often Amazon, Walmart, Best Buy, eBay or other stores appear for your keywords.
- Lead lists for e-commerce services: collect store names selling in a niche.
- Price comparison and deal sites: feed fresh Google Shopping prices into your own app.
How it works
- For each search query, the Actor requests the Google Shopping results page for the selected country and language.
- It reads every product card on the page, removes duplicates and converts prices, ratings and review counts to numbers.
- Sort order is applied by Google. Google applies one filter per request, so the Actor sends free shipping, price range or on sale (in that order of priority) to Google and checks the other filters on each product card.
- It moves to the next results page until it reaches
maxResultsor Google has no more products. - Each matching product is saved to the dataset and charged as one event.
FAQ
How many products can I get per search?
It depends on the search. In our tests, broad searches such as laptop or coffee maker returned more than 150 products each, while narrow searches return fewer. Google shows about 40 products per results page, and the Actor stops when Google has no more new products.
Can I get products from a specific store?
Yes. Add store names to Stores, for example Walmart or Best Buy. Matching is partial and ignores case, so eBay also matches eBay - seller. Store filtering happens on the product cards, so the Actor may need to read several pages to find enough products from a small store. If no product matches your filters on 6 results pages in a row, the Actor stops that query.
Why are some fields empty?
The Actor only returns what Google shows on the product card. Not every card has shipping or returns text, a rating, or a store name. Products sold by many stores sometimes show only & more. In that case store_name is null and more_stores_available is true.
How does the free shipping filter work?
Free shipping is applied by Google itself. Many cards don't display delivery text, so the shipping field can still be empty for products returned with this filter.
How does the free returns filter work?
It keeps products whose returns text says the returns are free, for example Free 30-day returns. Products without returns text are skipped. Free shipping and free returns detection also works for common non-English wording, such as Kostenlose Rücknahme.
Does it return product descriptions, specs or all offers for a product? No. Google Shopping Scraper returns the data shown in Google Shopping search results: one offer per product card, with its price, store, delivery and returns. It does not open each product's detail panel.
Why do I get products that don't match my search exactly? Google Shopping shows its own closest matches, especially for very specific or misspelled searches. The Actor returns what Google shows for that query.
Are prices in local currency?
Yes. Prices are in the currency of the selected country, and minPrice / maxPrice use that currency too.
Can I schedule recurring runs? Yes. Create a schedule in Apify Console to run the Actor every hour, day or week, and connect integrations to send new data where you need it.
Can I use it through the API or with AI agents? Yes. Use the API tab for endpoints and code samples, or connect the Actor to AI agents with the Apify MCP server.
Something doesn't work. What should I do? Open an issue in the Issues tab with your run link. We read every report.
Is it legal to scrape Google Shopping?
Google Shopping Scraper collects only publicly available product listings: prices, store names, ratings and similar data that anyone can see on Google Shopping without logging in. It does not collect personal data. Scraping public data is generally legal, but you should check the laws that apply to you and how you use the data, and avoid collecting personal data without a legitimate reason. If in doubt, ask a lawyer. Read more in Apify's blog post on whether web scraping is legal.
Other e-commerce and Google scrapers
| Actor | What it scrapes |
|---|---|
| Google Ads Transparency Center Scraper | Search, YouTube and Shopping ads by advertiser |
| Google Play Store Scraper | Android apps, ratings and reviews |
| AliExpress Scraper | AliExpress products and sellers |
| MercadoLibre Search Scraper | MercadoLibre search results across Latin America |
| Allegro.pl Product Scraper | Allegro products and prices in Poland |
| Coupang Search Scraper | Coupang search results in South Korea |
| Tesco UK & Ireland Scraper | Tesco grocery products and prices |
| B&H Photo Scraper | B&H Photo electronics listings and prices |