Google Shopping Results Scraper
Pricing
from $0.23 / 1,000 item extracteds
Google Shopping Results Scraper
Extract Google Shopping product results by keyword, country, language, price range, and max item count for price and merchant research.
Pricing
from $0.23 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract product cards from Google Shopping search results by keyword, country, language, and optional price range.
Use this actor to monitor product prices, compare sellers, find marketplace positioning, and export structured shopping data without copying result pages by hand.
At a glance
- Best for: product price monitoring, merchant comparison, category research, paid-shopping snapshots, and ecommerce reporting.
- Inputs: product queries, country, language, result limit, optional price filters, and proxy settings.
- Outputs: one row per saved Google Shopping product card with title, price, merchant, rating, review count, shipping text, source URL, and timestamp.
- Exports: download CSV, JSON, Excel, XML, RSS, or use the Apify Dataset API.
- Cost:
$0.005per run plus theitemevent for each saved product card.
Ready-to-run examples
Use these saved Store examples as starting points. Open any example to prefill the Actor input, then adjust URLs, keywords, limits, or filters for your own run.
- Google Shopping gaming monitor scraper
- Google Shopping skincare serum scraper
- Google Shopping Germany sneakers scraper
- Google Shopping UK air fryer price scraper
- Google Shopping headphones under $100 scraper
- Google Shopping laptops under $1000 scraper
- View all ready-to-run examples (10 examples)
What can it do?
Google Shopping Results Scraper searches Google Shopping for your product keywords and saves visible product result cards as a clean dataset.
| Capability | What it does |
|---|---|
| Search products | Run one Google Shopping query or a list of queries in the same job. |
| Target locale | Set country and language to compare localized shopping results. |
| Export product cards | Save titles, prices, merchants, ratings, review counts, shipping snippets, source URLs, and timestamps. |
| Filter prices | Optionally keep only products inside a minimum or maximum price range. |
| Control spend | Cap maxItems to keep test runs small and predictable. |
Who is it for?
- Ecommerce teams: track how products appear in Google Shopping and compare visible offers.
- Price intelligence teams: monitor merchant prices, advertised pricing, and offer changes.
- Marketplace analysts: review ranking and seller coverage for product categories.
- Agencies: collect shopping snapshots for client reporting.
- Product managers: research comparable products before launch.
- SEO and paid-shopping specialists: understand competitive Shopping result pages by query and region.
Why use this actor?
- Google Shopping pages are built for browsing, not spreadsheet exports.
- The actor converts result cards into flat JSON records.
- Each item is easy to export to CSV, Excel, Google Sheets, BigQuery, Snowflake, or your own API.
- Query and timestamp metadata make repeated runs easier to compare over time.
- The actor is designed for low-volume monitoring and research workflows.
Output fields
| Field | Description |
|---|---|
query | Search term that produced the item |
position | Result position in the saved output |
productTitle | Product title |
priceText | Displayed price text |
priceValue | Numeric price when available |
currency | Currency inferred from the displayed symbol |
merchant | Merchant or seller snippet |
productUrl | Product link when available from the result markup |
imageUrl | Product image URL when available |
rating | Star rating |
reviewCount | Number of reviews |
shipping | Delivery or shipping snippet |
sourceUrl | Google Shopping page URL used for extraction |
scrapedAt | Time the result was saved |
Output example
{"query": "coffee maker","position": 1,"productTitle": "Keurig K-Classic Coffee Maker K-Cup Pod Single Serve","priceText": "$129.99","priceValue": 129.99,"currency": "USD","merchant": "Keurig.com","productUrl": null,"imageUrl": null,"rating": 4.3,"reviewCount": 9700,"shipping": "Free delivery by Thu","sourceUrl": "http://www.google.com/search?tbm=shop&udm=28&q=coffee+maker&hl=en&gl=US&num=100","scrapedAt": "2026-06-30T10:00:00.000Z"}
Pricing
This actor uses pay-per-event pricing.
A small $0.005 start event is charged once per run, and an item event is charged for each saved Google Shopping product card.
Current BRONZE pricing is $0.00037886 per saved product card, about $0.38 per 1,000 saved items, with lower per-item prices on higher Apify tiers.
Only saved product cards are charged as item events. For a typical 20-result research run, cost stays low because only saved results are charged.
Use a low maxItems value when testing a new query list.
How to use
- Open the actor on Apify.
- Add one or more shopping queries.
- Choose a country code such as
US,GB,CA,AU, orDE. - Choose a language code such as
en,es,de, orfr. - Set
maxItemsto the number of products you want. - Optionally add
minPriceormaxPrice. - Keep proxy enabled for best reliability.
- Start the run.
- Download the dataset as JSON, CSV, Excel, XML, or RSS.
Input configuration
| Setting | JSON key | What it does |
|---|---|---|
| Shopping queries | queries | Product names, category phrases, SKUs, model numbers, or comparison keywords such as coffee maker, running shoes, or 4k monitor. |
| Maximum results | maxItems | Total saved product cards across all queries. If you enter 3 queries and set maxItems to 60, the run stops after 60 total records. |
| Country | country | Two-letter country code such as US, GB, CA, AU, or DE. Google Shopping availability and ranking vary by region. |
| Language | language | Google interface language for snippets, such as en, es, de, or fr. |
| Minimum price | minPrice | Optional post-extraction filter that keeps products at or above this numeric price. |
| Maximum price | maxPrice | Optional post-extraction filter that keeps products at or below this numeric price. |
| Proxy configuration | proxyConfiguration | Optional proxy settings. Google may return interstitial or rate-limit pages without a suitable proxy on larger runs. |
Tips for better results
- Use specific product keywords: model names and SKU-like phrases work better for merchant-level price comparison.
- Use category keywords for landscape research: broader phrases are useful when you want a market overview.
- Start small: test a few queries before scheduling larger recurring jobs.
- Keep batches focused: compare one region and product type at a time.
- Use timestamps: compare the same query over days or weeks.
- Avoid vague one-word terms: they often return mixed products that are harder to analyze.
Common workflows
- Price monitoring: schedule the same query every day and compare
priceValueby title and merchant. - Competitive research: run category terms and review which brands and stores appear most often.
- Assortment discovery: search model names and collect alternative sellers or similar products.
- Agency reporting: export CSV files for client dashboards and shopping landscape reports.
- Product launch research: compare titles, ratings, review counts, and shipping offers for adjacent products.
Integrations
- Google Sheets: review product cards manually or share quick reports.
- BigQuery or Snowflake: store long-term price intelligence and category snapshots.
- Make or Zapier: create no-code scheduled alerts.
- Apify webhooks: notify your app when a run finishes.
- Apify API: trigger runs from internal dashboards.
- CSV exports: support spreadsheet-based reporting.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/google-shopping-results-scraper').call({queries: ['coffee maker'],country: 'US',language: 'en',maxItems: 20});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/google-shopping-results-scraper').call(run_input={'queries': ['coffee maker'],'country': 'US','language': 'en','maxItems': 20,})print(run['defaultDatasetId'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~google-shopping-results-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"queries":["coffee maker"],"country":"US","language":"en","maxItems":20}'
MCP and AI agents
You can connect this actor to AI tools through the official Apify MCP server.
Use the MCP server URL with the actor tool enabled:
https://mcp.apify.com?tools=fetch_cat/google-shopping-results-scraper
Add it in Claude Code:
$claude mcp add apify-google-shopping "https://mcp.apify.com?tools=fetch_cat/google-shopping-results-scraper"
Or configure an MCP client with JSON:
{"mcpServers": {"apify-google-shopping": {"url": "https://mcp.apify.com?tools=fetch_cat/google-shopping-results-scraper"}}}
The default Apify MCP server can search and run Actors. The focused URL exposes only this Actor to clients that support tool-scoped MCP connections.
Example prompts:
- "Search Google Shopping for coffee makers in the US and summarize price ranges."
- "Compare merchants for running shoes and list products with ratings above 4.5."
- "Find the first 20 Google Shopping results for wireless mouse and export titles and prices."
Scheduling
Use Apify schedules for recurring price snapshots.
Daily runs are useful for fast-changing categories.
Weekly runs are often enough for market landscape reports.
Keep maxItems aligned with the number of products you actually review.
Data quality notes
Google Shopping layouts and snippets can vary by country, language, query, and time.
Some cards may not expose every field.
productUrl and imageUrl can be null when Google renders those values through an interactive viewer instead of a direct visible link.
The actor saves fields only when they are visible or parseable from the result card.
Troubleshooting
Why did my run return no results?
Check that the query has Google Shopping results in the selected country.
Try a lower maxItems value.
Keep proxy enabled.
If Google returns an interstitial, wait and retry with a smaller batch.
Why are some fields null?
Google does not show every field on every card.
For example, some results do not show ratings, reviews, shipping, images, or direct product links.
Why do prices differ by location?
Google Shopping ranking and merchant availability are localized.
Use the same country and language values when comparing repeated runs.
Limits
This actor is intended for public Google Shopping result cards.
It does not log in to Google.
It does not open merchant checkout pages.
It does not scrape private account data.
It does not guarantee identical output for every locale because Google changes layouts frequently.
Legality
This actor extracts publicly visible search-result information.
You are responsible for using the data lawfully and respecting applicable terms, privacy rules, and platform policies.
Do not use scraped data for prohibited, deceptive, or privacy-invasive purposes.
Consult legal counsel if your use case has regulatory requirements.
Related actors
Explore related actors from fetch_cat for ecommerce, search, and product intelligence workflows:
- Shopify Products Scraper
- AliExpress Products Scraper
- Walmart Products Scraper
- Bing Search Results Scraper
- Website Contact Finder
FAQ
Can I scrape multiple keywords in one run?
Yes. Add multiple values to queries and set a total maxItems cap.
Can I target another country?
Yes. Set country to a two-letter code such as GB, CA, AU, or DE.
Can I filter by price?
Yes. Use minPrice and maxPrice to filter extracted results after the page is parsed.
Can I schedule monitoring?
Yes. Use Apify schedules and export each run's dataset for trend analysis.
Does it scrape product detail pages?
No. Version 0.1 focuses on result cards because they are the safest and fastest unit for search monitoring.
What happens if Google changes the page?
The actor includes defensive parsing and clear failure messages. If the layout changes significantly, rerun with a small query and report the issue.
Changelog
-
2026-07-02 - Change: Fixed German Google Shopping example runs to return localized product results (APIA-1163)
-
2026-07-02 - Feature: Added ready-to-run Google Shopping example tasks on the Apify Store (APIA-1154)
-
2026-07-02 - Feature: Launched Google Shopping Results Scraper on Apify Store (APIA-1151)
- This actor is now publicly available at https://apify.com/fetch_cat/google-shopping-results-scraper.
0.1
Initial version for Google Shopping keyword result extraction.
Support
If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.
Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.