Google Shopping Results Scraper

Extract Google Shopping product results by keyword, country, language, price range, and max item count for price and merchant research.

Data fields

FieldTypeDescription
querystringValue exported as query.
positionintegerValue exported as position.
productTitlestringValue exported as productTitle.
priceTextstring | nullValue exported as priceText.
priceValuenumber | nullValue exported as priceValue.
currencystring | nullValue exported as currency.
merchantstring | nullValue exported as merchant.
productUrlstring | nullValue exported as productUrl.

Input preview

queriesShopping queries *
maxItemsMaximum results
countryCountry code
languageLanguage code
minPriceMinimum price
maxPriceMaximum price

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

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.005 per run plus the item event for each saved product card.

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 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"
}

How to use

  1. Open the actor on Apify.
  2. Add one or more shopping queries.
  3. Choose a country code such as US, GB, CA, AU, or DE.
  4. Choose a language code such as en, es, de, or fr.
  5. Set maxItems to the number of products you want.
  6. Optionally add minPrice or maxPrice.
  7. Keep proxy enabled for best reliability.
  8. Start the run.
  9. Download the dataset as JSON, CSV, Excel, XML, or RSS.

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

  • 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 ApifyClient
import os

client = 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.

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.

Common questions

Questions and answers reused from the canonical actor README.

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.