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
2
Monthly active users
5 days ago
Last modified
Categories
Share
Extract organic and sponsored Google Shopping product cards by keyword, country, language, merchant, condition, sale status, shipping/returns, price, sort order, and page range.
Use this actor to monitor product prices, compare sellers, audit sponsored Product Listing Ads (PLAs), find marketplace positioning, and export structured shopping data without copying result pages by hand.
What does Google Shopping Results Scraper do?
Google Shopping Results Scraper searches Google Shopping for your product keywords and saves the visible product result cards as a clean dataset.
It returns titles, stable product IDs, prices and savings, merchants, availability, offer counts, ratings, shipping/returns flags, organic-versus-sponsored provenance, query relevance, source URLs, and timestamps.
You can run one query or a list of queries in the same job. Multi-query output is allocated round-robin so a large first query cannot starve later queries.
You can target a country and language to compare localized results.
You can cap the number of results to keep test runs small and predictable.
Who is it for?
Ecommerce teams use it to track how products appear in Google Shopping.
Price intelligence teams use it to compare merchant offers and advertised pricing.
Marketplace analysts use it to review ranking and seller coverage for product categories.
Agencies use it to collect shopping snapshots for client reports.
Product managers use it to research comparable products before launch.
SEO and paid shopping specialists use it to understand competitive result pages.
Why use this actor?
Google Shopping pages are built for browsing, not spreadsheet exports.
This 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.
The actor is designed for low-volume monitoring and research workflows.
It includes clear query and timestamp metadata so repeated runs can be compared over time.
What data can you extract?
| Field | Description |
|---|---|
query | Search term that produced the item |
position / queryPosition | Global and per-query result positions |
page / pagePosition | Source page and position on that page |
productId | Deterministic ID derived from the canonical product URL or normalized title and merchant |
productTitle | Product title |
priceText / priceValue | Displayed and numeric prices |
originalPriceValue | Original price when a discount is visible |
savingsValue / savingsPercent | Parsed savings |
currency | Currency inferred from the displayed symbol |
merchant | Merchant or seller snippet |
condition / availability / offerCount | Visible product and offer metadata |
productUrl | Product link when available from the result markup |
imageUrl | Product image URL when available |
rating | Star rating |
reviewCount | Number of reviews |
shipping / freeShipping / freeReturns | Delivery and returns signals |
onSale | Whether a sale/deal/discount was visible |
sponsored / resultType | Sponsored PLA versus organic provenance |
queryRelevance | Query-token overlap score from 0 to 1 |
queryStatus / isPartial | Complete, partial, timeout, block, HTTP error, or empty classification |
sourceUrl | Exact Google Shopping page URL used for extraction |
scrapedAt | Time the result was saved |
Example output
{"query": "coffee maker","position": 1,"queryPosition": 1,"page": 1,"pagePosition": 1,"productId": "gshop_9d1772f8ed48da88c18a","productTitle": "Keurig K-Classic Coffee Maker K-Cup Pod Single Serve","priceText": "$129.99","priceValue": 129.99,"originalPriceValue": 149.99,"savingsValue": 20,"savingsPercent": 13,"currency": "USD","merchant": "Keurig.com","productUrl": null,"imageUrl": null,"rating": 4.3,"reviewCount": 9700,"shipping": "Free delivery by Thu","freeShipping": true,"freeReturns": false,"onSale": true,"sponsored": false,"resultType": "organic","queryRelevance": 1,"queryStatus": "complete","isPartial": false,"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"}
How much does it cost to scrape Google Shopping results?
This actor uses pay-per-event pricing.
There is a small start charge for each run.
The start event is charged once for each run. The item event is charged once for each saved Google Shopping result row; diagnostics and failed requests are not billed as items.
See the live Pricing tab for current rates and account-tier discounts.
Use a low maxItems value when testing a new query list.
Scale up only after you confirm the output matches your workflow.
Input example
{"queries": ["running shoes", "trail shoes"],"country": "US","language": "en","maxItems": 20,"maxItemsPerQuery": 10,"merchant": "Running Warehouse","condition": "new","minPrice": 50,"maxPrice": 200,"onSale": true,"freeShipping": true,"freeReturns": false,"sort": "priceAsc","startPage": 1,"maxPages": 2,"requestTimeoutSecs": 45,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["GOOGLE_SERP"],"apifyProxyCountry": "US"}}
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 filter by price, merchant, condition, on-sale status, free shipping, or free returns.
- Choose relevance, price, or rating sorting and a bounded page range.
- Keep proxy enabled for best reliability.
- Start the run and inspect the
RUN_SUMMARYrecord for per-query diagnostics. - Download the dataset as JSON, CSV, Excel, XML, or RSS.
Input settings
Shopping queries
Add product names, category phrases, SKUs, model numbers, or comparison keywords.
Examples:
coffee makerrunning shoeswireless mouseiphone 15 case4k monitor
Maximum results
maxItems controls the total saved results across all queries.
If you enter 3 queries and set maxItems to 60, the run stops after saving 60 total records.
Country
Use a two-letter country code.
Google Shopping availability and ranking vary by region.
Language
Use the Google interface language you want for snippets.
Product and merchant filters
minPrice, maxPrice, merchant, condition, onSale, freeShipping, and freeReturns narrow the result set. Boolean filters require an explicit visible signal, so unknown shipping or returns metadata is not treated as a match.
Sorting and pages
sort supports relevance, priceAsc, priceDesc, and rating. startPage chooses the first page and maxPages sets a hard per-query request cap of up to 10 pages.
maxItems is the hard global output cap. maxItemsPerQuery adds a hard per-query cap. Multiple queries are fetched and saved fairly in rounds.
Run diagnostics
The RUN_SUMMARY key-value-store record reports complete, partial, or failed run status plus per-query complete, partial, timeout, blocked, http_error, or empty classifications. Diagnostic rows are never added to the dataset and are never billed as items. Set requestTimeoutSecs to control each page request timeout.
Proxy configuration
Use proxyConfiguration to keep the default GOOGLE_SERP group or supply an equivalent proxy.
Keep the default proxy enabled.
Google may return interstitial or rate-limit pages without a suitable proxy.
Tips for better results
Use specific product keywords when you need merchant-level price comparisons.
Use category keywords when you need a market overview.
Run small tests before scheduling large recurring jobs.
Keep query batches focused by region and product type.
Use timestamps to compare the same query over days or weeks.
Avoid very broad one-word terms if you need precise products.
Common workflows
Price monitoring
Schedule the same query every day and compare priceValue by 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
Send results to Google Sheets for manual review.
Send results to BigQuery or Snowflake for long-term price intelligence.
Connect the actor to Make or Zapier for scheduled alerts.
Use Apify webhooks to notify your app when a run finishes.
Use the Apify API to trigger runs from internal dashboards.
Export CSV files for 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,maxItemsPerQuery: 10,merchant: 'Walmart',onSale: true,freeShipping: true,sort: 'priceAsc',startPage: 1,maxPages: 2});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 usage
You can connect this actor to AI tools through Apify MCP.
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"}}}
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.
Ready-to-run examples
- Compare coffee maker prices
- Find headphones under $100
- Research gaming monitors
- Compare UK air fryer prices
- Search German sneaker results
- Find laptops under $1,000
- Research running shoes
- Compare iPhone 15 cases
- Search wireless mouse results
- Research skincare serums
Related Actors
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 merchant, condition, sales, shipping, and returns?
Yes. Use merchant, condition, onSale, freeShipping, and freeReturns alongside minPrice and maxPrice.
Can I distinguish Shopping ads from organic results?
Yes. sponsored is a boolean and resultType is sponsored or organic, based on the provenance marker attached to the result card.
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.
Support
Open an issue from the Actor page when you find a failed run, wrong output, or another reproducible bug. Include the Apify run ID or run URL, complete input JSON, expected output, actual output, and one reproducible public Google Shopping URL when available.
Small reproducible inputs make issues much faster to diagnose.
