Google Shopping Scraper avatar

Google Shopping Scraper

Pricing

from $2.29 / 1,000 product scrapeds

Go to Apify Store
Google Shopping Scraper

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

ParseBird

Maintained by Community

Actor 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?

FieldDescription
product_titleProduct name as shown on Google Shopping
brandBrand name Google assigns to the product
price / price_valueCurrent price as text and as a number
original_price / original_price_valuePrevious or usual price when the product is discounted
on_sale / percent_off / badgeDiscount flag, percentage off and the card badge (for example 37% OFF)
store_nameStore selling the offer shown on the card (for example Best Buy, eBay - seller)
more_stores_availabletrue when Google says the product is sold by more stores (& more)
product_rating / product_num_reviewsAverage product rating and number of reviews
product_condition / condition_labelNEW, USED or REFURBISHED, plus Google's label such as Pre-owned
shipping / returnsDelivery and return text, for example Free delivery by Tue, Free 30-day returns
product_photoProduct image URL
product_id, catalog_id, gpc_id, offer_id, product_cluster_idGoogle's identifiers for the product and the offer
search_query, position, page, search_urlThe 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

  1. Open Google Shopping Scraper in Apify Console (an Apify account is needed).
  2. In Search queries, enter one or more product searches, for example nike running shoes or iPhone 16.
  3. Set Max products per query and pick a Country.
  4. Optional: choose Sort by and any filters such as price range, condition, stores, on sale, free shipping or free returns.
  5. Click Start and wait for the run to finish.
  6. 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.

EventFree planBronzeSilverGold
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

ParameterTypeRequiredDefaultDescription
searchQueriesarray of stringsYes—Product searches, one per line
maxResultsintegerNo50Maximum products saved per query (1–1000)
countrystringNousGoogle Shopping country (29 supported, see the input form)
languagestringNoenInterface language code, for example en, de, fr, ja
sortBystringNoBEST_MATCHBEST_MATCH, LOWEST_PRICE, HIGHEST_PRICE or TOP_RATED
minPriceintegerNo—Minimum price in the country's currency
maxPriceintegerNo—Maximum price in the country's currency
productConditionstringNoANYANY, NEW, USED or REFURBISHED
storesarray of stringsNo[]Keep products from these stores only (case-insensitive, partial match)
onSalebooleanNofalseKeep only discounted products
freeShippingbooleanNofalseKeep only products with free delivery
freeReturnsbooleanNofalseKeep 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 ApifyClient
client = 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

  1. For each search query, the Actor requests the Google Shopping results page for the selected country and language.
  2. It reads every product card on the page, removes duplicates and converts prices, ratings and review counts to numbers.
  3. 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.
  4. It moves to the next results page until it reaches maxResults or Google has no more products.
  5. 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.

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

ActorWhat it scrapes
Google Ads Transparency Center ScraperSearch, YouTube and Shopping ads by advertiser
Google Play Store ScraperAndroid apps, ratings and reviews
AliExpress ScraperAliExpress products and sellers
MercadoLibre Search ScraperMercadoLibre search results across Latin America
Allegro.pl Product ScraperAllegro products and prices in Poland
Coupang Search ScraperCoupang search results in South Korea
Tesco UK & Ireland ScraperTesco grocery products and prices
B&H Photo ScraperB&H Photo electronics listings and prices