September 23, 2026 · 14 min read
Google Shopping Scraper: 105 of 117 Runs Succeeded (2026)
Each record from this scraper carries 17 fields, including the merchant name, current price, and delivery information. The data provides a direct view of the retail landscape across 48 countries without requiring any login or complex session management. A thousand results costs $5.00 on Apify's free plan, making it efficient for bulk price monitoring or competitive research. The output includes specific details like originalPrice for discounts and reviewCount for sentiment analysis. This is built for retail analysts and e-commerce engineers who need structured pricing data; it is not for those requiring private inventory levels or buyer contact information.
Try it before you read further. Apify's free plan includes $5.00 of usage every month with no credit card, enough for up to 1,000 results at $0.005 each before platform usage. Open Google Shopping Scraper on Apify and run the prefilled example.
How reliable is Google Shopping Scraper in production?
Across the last 30 days of public runs on the Apify platform, Google Shopping Scraper recorded 117 runs with the following outcomes.
| Outcome | Runs | Share |
|---|---|---|
| Succeeded | 105 | 89.7% |
| Failed | 8 | 6.8% |
| Aborted by the user | 3 | 2.6% |
| Timed out | 1 | 0.9% |
| Total | 117 | 100.0% |
The telemetry shows a success rate that suggests you can expect about 8 in a hundred runs to fail or time out. For production schedules, you should implement automated retries and alerting to handle these failures and timeouts. Aborted runs are typically user-initiated and do not reflect the technical reliability of the scraper.
What does it cost to run Google Shopping Scraper?
Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.
| Apify plan | Per result | Per 1,000 results |
|---|---|---|
| FREE | $0.005 | $5.00 |
| BRONZE | $0.00433 | $4.33 |
| SILVER | $0.00367 | $3.67 |
| GOLD | $0.003 | $3.00 |
| PLATINUM | $0.003 | $3.00 |
| DIAMOND | $0.003 | $3.00 |
Worked example: collecting 10,000 results costs $50.00 in result charges before run-start fees and platform usage. With 7.7% of runs failing or timing out in the last 30 days, budget for re-running a portion of those batches rather than assuming every run completes.
The maxResultsPerQuery and the number of entries in the queries array are the primary drivers of your bill because they dictate the total items written to the dataset. The cheapest way to validate your configuration is to run a single query with a cap of 5 results, which costs at most $0.03 in result charges.
How do you run Google Shopping Scraper from the API?
The schema marks 1 of its 9 controls as required: queries. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for Google Shopping Scraper, so the request works once your token is in place.
Call the synchronous endpoint to start a run and receive dataset items in one request:
curl -X POST "https://api.apify.com/v2/acts/crawlerbros~google-shopping-insights/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries":["iPhone 15 Pro Max"],"maxResultsPerQuery":5,"countryCode":"us","languageCode":"en","sortBy":"","condition":"","proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["GOOGLE_SERP"]}}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"queries": [
"iPhone 15 Pro Max"
],
"maxResultsPerQuery": 5,
"countryCode": "us",
"languageCode": "en",
"sortBy": "",
"condition": "",
"proxyConfiguration": {
"useApifyProxy": True,
"apifyProxyGroups": [
"GOOGLE_SERP"
]
}
}
run = client.actor("crawlerbros~google-shopping-insights").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
And from Node.js:
import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
const input = {
"queries": [
"iPhone 15 Pro Max"
],
"maxResultsPerQuery": 5,
"countryCode": "us",
"languageCode": "en",
"sortBy": "",
"condition": "",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"GOOGLE_SERP"
]
}
}
const run = await client.actor('crawlerbros~google-shopping-insights').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.
Which Google Shopping Scraper inputs matter, and which can you skip?
The queries array is the only required input and determines the core search results. For a first run, most users should leave the proxyConfiguration at its default GOOGLE_SERP setting to ensure reliable access and focus on refining the countryCode for localized accuracy.
queries(array): List of product search queries to look up on Google Shopping (e.g., "iPhone 15 Pro Max", "running shoes").maxResultsPerQuery(integer): Maximum number of product results to extract per search query. Default:20.countryCode(string): Country for localized results and pricing. Determines the Google domain used. Default:"us".languageCode(string): Language for results (hl parameter). E.g. 'en', 'de', 'fr'. Leave empty for default. Default:"en".sortBy(string): How to sort Google Shopping results. Default:"".condition(string): Filter products by condition. Default:"".minPrice(integer): Minimum price filter (in local currency units). Leave empty for no minimum.maxPrice(integer): Maximum price filter (in local currency units). Leave empty for no maximum.proxyConfiguration(object): Proxy configuration. GOOGLE_SERP proxy provides the most reliable access to Google Shopping. Default:{"useApifyProxy":true,"apifyProxyGroups":["GOOGLE_SERP"]}.
Fixed-choice controls: countryCode accepts 48 values (default us), including us (United States), uk (United Kingdom), ca (Canada), au (Australia); sortBy accepts (Relevance (default)), `review_score` (Review score), `price_low` (Price: low to high), `price_high` (Price: high to low); `condition` accepts (Any), new, used, refurbished.
What does Google Shopping Scraper return?
The output is ideal for building price comparison engines or merchant leaderboards as it contains verified merchant names and current listing prices. It does not contain private seller data, such as internal warehouse stock counts or merchant email addresses.
query: String - Search query usedposition: Integer - Position in results (1-based)title: String - Product titleprice: String - Current price with currency (e.g., "$999.00")originalPrice: String - Original price if discounted (e.g., "$1,200")currency: String - Currency code (USD, EUR, GBP, etc.)merchant: String - Store or merchant namerating: String - Average rating (e.g., "4.5")reviewCount: String - Number of reviews (e.g., "1,234")imageUrl: String - Product thumbnail image URLdelivery: String - Delivery info (e.g., "Free delivery")isSponsored: Boolean - Whether this is a sponsored/ad resultproductId: String - Google Shopping unique product identifier (when available)productUrl: String - Google Shopping product comparison URL (when available)merchantUrl: String - Merchant website URL (when available)searchUrl: String - Google Shopping search URLscrapedAt: String - ISO timestamp when scraped
These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.
How do you build the workflow end to end?
Open Google Shopping Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.
- Populate the queries array with specific product names or model numbers to avoid broad, irrelevant search results.
- Select the countryCode corresponding to your target market to ensure the currency and merchant list are localized correctly.
- Set maxResultsPerQuery to 20 for a first run to verify the density of the merchant data without incurring high platform usage costs.
- Run the Actor and navigate to the Dataset tab to confirm the price and merchant fields are populating for each result.
- Examine the isSponsored boolean to decide if your analysis should include or exclude paid advertisements.
- Verify that the originalPrice field is present for discounted items if your use case involves deal detection or tracking markdowns.
- Adjust the sortBy control to price_low if you are specifically looking for the lowest entry point across multiple retailers.
- Schedule the run if you require longitudinal price data, ensuring you use the same queries and countryCode settings each time.
How do you apply it? Three worked playbooks
These are Google Shopping Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Price Monitoring
Outcome: Price Monitoring: Track product prices across merchants over time
Configure: Set queries to ["Sony WH-1000XM5"], countryCode to "us", and maxResultsPerQuery to 50.
Working method: Initiate the first run to establish a baseline of current market prices for the specified query. Compare subsequent daily runs by matching the merchant and productId fields to detect price fluctuations or stock changes. Monitor the price field for any downward trends that trigger automated procurement alerts.
Deliverable: A time-series dataset in CSV or JSON format containing price, merchant, and scrapedAt timestamps for the target product.
Stop condition: The merchant names consistently return as generic strings or the price field fails to update across three consecutive runs.
Use case 2: Competitive Analysis
Outcome: Competitive Analysis: Compare pricing strategies of different sellers
Configure: Set queries to a list of competitor products, sortBy to "price_low", and condition to "new".
Working method: Run the collector for a set of high-volume queries to identify which merchants consistently hold the lowest price position. Analyze the distribution of isSponsored results versus organic listings for each merchant to understand their visibility strategy. Use the delivery field to compare shipping offers across the same product catalog.
Deliverable: A comparative report showing price variance and shipping terms between competing retailers for identical queries.
Stop condition: The position field shows only sponsored results, indicating a lack of organic competitive data for the selected queries.
Use case 3: Market Research
Outcome: Market Research: Discover product trends, pricing patterns, and merchant landscapes
Configure: Set queries to broad category terms like "ergonomic office chairs", maxPrice to 500, and countryCode to "uk".
Working method: Execute the run across a wide range of queries within a single category to map the merchant landscape. Use the rating and reviewCount fields to identify which products have the highest market sentiment within a specific price bracket. Group results by merchant to see which stores dominate the search visibility for the category.
Deliverable: An aggregated dataset of product titles, review scores, and merchant counts used to identify market leaders.
Stop condition: The reviewCount field is empty for more than 50% of the results, preventing valid sentiment analysis.
What breaks, and how do you design around it?
- Over the last 30 days, 6.8% of public runs failed and 0.9% timed out. Build retries and alerting around those rates rather than assuming every run completes.
Google Shopping typically caps results at 100 items per search page; if you need more, you must use more specific queries to surface deeper inventory. If you hit rate limits, increase the delays between your scheduled runs or diversify the queries across multiple smaller tasks.
When should you not use Google Shopping Scraper?
Do not use this Actor if you require data from platforms that use heavy client-side rendering or account-based pricing. If you specifically need data from the Wish platform, use Wish Shopping Scraper instead. For academic research and citation tracking, Google Scholar Scraper is the appropriate tool. If your project involves tracking application sentiment rather than physical consumer goods, consider Google Play Store Scraper or Google Workspace Marketplace Review Tracker. Use an official merchant API if you require real-time inventory synchronization that search results cannot provide.
What should you check before trusting the output?
- Identify results where price is null or zero, which may indicate a regional availability issue or a scraping block.
- Check for malformed currency codes in the currency field when scraping non-US domains.
- Compare the position field against your expectations to ensure you are receiving the full depth requested in maxResultsPerQuery.
- Flag items where merchant is missing, as these records cannot be used for competitive retail mapping.
- Monitor the failure rate; if more than about 8 in a hundred runs fail or time out, consider reducing the batch size of the queries array.
None of this proves a record is correct. It gives a scheduled Google Shopping Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
What is the expected reliability of a typical run?
In the last 30 days, 105 of 117 public runs succeeded. This indicates a success rate of 89.7%, meaning about 8 in a hundred runs may fail or time out. Users should prepare for occasional technical interruptions by configuring retries in their scheduling logic, though the majority of runs complete without issue.
How much will it cost to scrape 5,000 products?
On Apify's free plan, 5,000 results will cost $25.00 in result charges, calculated at $5.00 per 1,000 results. Note that this does not include platform usage fees or the run-start fee, which is charged every time an Actor begins execution regardless of the result count.
Can I try this scraper for free?
Apify's free plan includes $5.00 of monthly usage with no credit card required, which is enough to cover up to 1,000 results of this Actor. A first run using the example input is capped at 5 results and costs at most $0.03 in result charges, allowing for low-cost testing.
Why is the GOOGLE_SERP proxy recommended for this Actor?
Google actively blocks automated requests from standard datacenter IP addresses. The GOOGLE_SERP proxy configuration is specifically optimized to navigate Google's anti-scraping measures, providing the most reliable access to search results compared to residential or datacenter fallbacks.
Does the scraper return used or refurbished items?
Yes, the Actor includes a condition control that allows you to filter results by new, used, or refurbished status. If left empty, the scraper returns all conditions available on the Google Shopping results page for your specific queries.
Where to go next
When you are ready to run it, open Google Shopping Scraper on Apify; the free plan covers up to 1,000 results a month.
Start with the Google Shopping Scraper Actor page for the current input schema, pricing tier, and run history.
It is part of the Google Scraping Suite, which puts every related Actor on one page with its price and run history.
If you are comparing approaches rather than committing to one Actor, these category pages list every option we publish:
- Review scrapers covers 193 Actors in this family.
Readers running Google Shopping Scraper commonly pair it with:
- Google Images Scraper: Extract image data from Google Images search.
- Google Workspace Marketplace Review Tracker: Track and monitor reviews for any Google Workspace Marketplace app.
- Google Workspace Marketplace Scraper: Scrape Google Workspace Marketplace, search apps by keyword, browse by category, or fetch full details for specific app IDs.
- Wish Shopping Scraper: Scrape Wish.com products search by keyword, browse by category, look up by product ID, or fetch trending products.
- Google Play Store Scraper: Scrape Google Play Store app data including ratings, reviews, installs, pricing, developer info, and screenshots.
- Google Workspace Marketplace Category Tracker: Track ranked apps in any Google Workspace Marketplace category.
- Google Scholar Scraper: Scrape academic papers, articles, and citations from Google Scholar.
- Google News Scraper: Scrape Google News in real-time.
Related guides:
- Google Workspace Marketplace Review Tracker: 3 Practical Use Cases
- Google Ads Transparency Center Scraper: 3 Practical Use Cases
- Google News Scraper: 3,402 of 3,566 Runs Succeeded (2026)
- Google Keywords Suggest Scraper Pro: 120 of 122 successful runs (2026)
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-23.
Actor last updated by its maintainers on 2026-06-14.
Run outcome figures cover the 30 day public window ending 2026-09-23.
● Featured actors
Google Shopping Scraper
Scrape Google Shopping search results. Extract product titles, prices, merchant names, ratings, reviews, images, and shipping info for any search query.
Run on Apify ↗