Google Shopping Scraper avatar

Google Shopping Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Google Shopping Scraper

Google Shopping Scraper

[πŸ’° $2.5 / 1K] Extract product listings from Google Shopping β€” titles, prices, merchants, ratings, images, and delivery info. Optionally enrich each product with specs, description, full seller-offer list, and top reviews. Batch search queries and URLs across 45+ countries and 19+ languages.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

Extract product listings from Google Shopping at scale. Get titles, prices, merchants, ratings, review counts, delivery info, discounts, and product IDs for any keyword or Google Shopping URL β€” with country, language, and currency targeting across 45+ markets.

Why This Scraper?

  • Keyword or URL input β€” feed search terms like "wireless earbuds" or paste Google Shopping result URLs directly
  • 45 countries, 19 languages, 21 currencies β€” run the same query in the US, Germany, Japan, or Brazil and get locally priced results
  • Automatic pagination β€” walks result pages until Google runs out of products or you hit your cap
  • Rich product fields β€” title, merchant, numeric price, price string, currency, original price, discount percent, rating, review count, delivery info, and more
  • Legacy URL support β€” old-style tbm=shop URLs are accepted and redirect automatically
  • No configuration overhead β€” sensible defaults out of the box, no proxy setup to fiddle with
  • Honest output β€” both the raw price string and a parsed numeric price are returned, so you can always see what Google actually displayed
  • Competitive pricing β€” comparable to or below other Google Shopping actors on Apify

Use Cases

Price Monitoring & Competitive Intelligence

  • Track competitor pricing across merchants for a given product
  • Watch for discounts and promotional activity on your SKUs
  • Benchmark your own store against the Shopping tab for key search terms

Market Research

  • Map product availability and pricing across countries
  • Identify which merchants dominate results for a category
  • Measure discount depth and frequency by product segment

E-commerce & Catalog Enrichment

  • Populate product databases with merchant and pricing data
  • Enrich existing SKUs with rating and review-count signals
  • Discover new merchants carrying products in your category

SEO & Digital Marketing

  • See which products rank on Shopping for target keywords
  • Analyze Shopping SERP composition by country and language
  • Track visibility of brands or merchants for commercial queries

Lead Generation

  • Build merchant lists by category and country
  • Surface niche sellers that rank on Google Shopping in your vertical

Getting Started

The fastest way to get started β€” just provide a search term:

{
"searchQueries": ["wireless earbuds"],
"maxResults": 50
}

Multi-Country with Currency

Run the same query in another market with local language and currency:

{
"searchQueries": ["kabellose kopfhΓΆrer"],
"country": "de",
"language": "de",
"currency": "EUR",
"maxResults": 100
}

Filtered Search with Sort

Narrow to a price range and sort by rating:

{
"searchQueries": ["coffee maker"],
"country": "us",
"minPrice": 50,
"maxPrice": 200,
"sortBy": "rating",
"condition": "new",
"maxResults": 60
}

Direct URL Input

Paste any Google Shopping result URL β€” filtered, sorted, or plain:

{
"startUrls": [
"https://www.google.com/search?tbm=shop&q=running+shoes",
"https://www.google.com/search?udm=28&q=bluetooth+speaker&gl=gb"
],
"maxResults": 40
}

Multiple Queries, Max Coverage

Fan out across several queries and pull every available product (up to Google's own ~200-product ceiling per query):

{
"searchQueries": [
"nike running shoes",
"adidas running shoes",
"hoka running shoes"
],
"country": "us",
"maxResults": 0
}

"maxResults": 0 means "fetch every available product per query, up to Google's own pagination ceiling (~200 per query)" β€” see Good to Know below.

Input Reference

What to Scrape

ParameterTypeDefaultDescription
searchQueriesstring[]["wireless earbuds"]Keywords to search on Google Shopping. Each query runs independently.
startUrlsstring[][]Google Shopping result URLs to process directly. Legacy tbm=shop links are accepted.

Results

ParameterTypeDefaultDescription
maxResultsinteger50Maximum products per query or URL. The actor may return a few extra rows from the final page β€” it stops fetching new pages once this number is reached, but returns the whole last page rather than trimming it. 0 means "fetch up to Google's own ~200-product ceiling per query". Max accepted value: 300.

Localization

ParameterTypeDefaultDescription
countrystring"us"Country for localized results. 45 markets supported (US, UK, DE, FR, JP, BR, and many more).
languagestring"en"Interface language for result text. 19 languages supported.
currencystring"USD"Currency for prices. 21 currencies supported. Google honors this where inventory exists.

Filters

ParameterTypeDefaultDescription
sortBystring"relevance"Sort order: relevance, priceLowToHigh, priceHighToLow, or rating. Best-effort β€” Google honors it loosely.
minPriceinteger(unset)Only include products priced at or above this amount, in the selected currency.
maxPriceinteger(unset)Only include products priced at or below this amount, in the selected currency.
conditionstring"any"any or new. Google Shopping's search page only offers "New" as a top-level filter.

Output

Each run emits a dataset of product rows β€” one per listing.

Product row example

{
"recordType": "product",
"query": "wireless earbuds",
"sourceUrl": null,
"rank": 1,
"page": 1,
"productId": "tsuid_7bXoae6tGrPv7_UPgtGTEQ_57",
"title": "Anker Soundcore Liberty 4 NC Wireless Earbuds",
"url": null,
"merchant": "soundcore US",
"price": 69.99,
"priceRaw": "$69.99",
"currency": "USD",
"originalPrice": 100.0,
"discountPercent": 30,
"delivery": "Free delivery",
"imageUrl": null,
"rating": 4.7,
"ratingCount": 8400,
"condition": null
}

Product fields

FieldTypeDescription
recordTypestringAlways "product" for listing rows
querystringThe search query that produced this row (when keyword input)
sourceUrlstringThe start URL that produced this row (when URL input)
ranknumberPosition in the result list (1 = first)
pagenumberPagination page number the row was found on
productIdstringGoogle's per-session product identifier. Not stable across runs.
titlestringProduct title
urlstringLink to the product (when available)
merchantstringMerchant / seller name as shown on the card
pricenumberNumeric price parsed from the card
priceRawstringOriginal price string exactly as Google displayed it
currencystringISO 4217 currency code parsed from the price
originalPricenumberStrike-through "was" price, when shown
discountPercentnumberDiscount percentage, when shown
deliverystringDelivery / shipping text (e.g. "Free delivery")
imageUrlstringProduct image URL, when available (typically empty on result-grid rows)
ratingnumberStar rating (1.0–5.0)
ratingCountnumberTotal number of ratings
conditionstringProduct condition, when shown

Tips for Best Results

  • Be specific with queries. "bluetooth speaker under $50 waterproof" returns cleaner results than "speaker".
  • Match country, language, and currency. Running a German query with country: "de", language: "de", and currency: "EUR" gives the most accurate local market snapshot.
  • Use priceRaw alongside price. priceRaw preserves the exact string Google showed β€” useful when you want to audit currency symbols or spot multi-seller "from" pricing.
  • Batch related queries. Running ["nike running shoes", "adidas running shoes", "hoka running shoes"] in a single run is cheaper and faster than three separate runs.
  • Set maxResults realistically. Google Shopping caps pagination at roughly 200 products per query. The actor accepts up to 300 per query, but you won't get more than Google itself serves β€” 0 is a good value when you want "everything Google has for this query".
  • Leave filters at defaults if you're unsure. Google's own filter UI is loose β€” applying filters narrows results but doesn't strictly guarantee every row matches.

Good to Know

A few honest caveats so you know what to expect:

  • Google Shopping caps results at ~200–300 per query. Requesting maxResults: 0 or a large number won't go beyond Google's own ceiling, which tends to be a few hundred rows per query.
  • Result counts may slightly exceed maxResults. Google's first result page alone typically contains 30–55 products. The actor stops fetching new pages once the cap is reached, but returns the full last page instead of trimming mid-page β€” so a run with maxResults: 20 often produces ~30+ rows.
  • Product IDs are session-scoped, not stable. The productId field (tsuid_...) is a per-run identifier. Running the same query tomorrow will produce different IDs for the same products. Use title + merchant for cross-run matching.
  • Sort and price filters are best-effort. Google's own Shopping UI applies these as soft hints, not strict constraints β€” most results will honor the filter, but outliers appear. If you need hard filtering, apply it on the output dataset.
  • Product detail enrichment coming soon. Deep per-product data (full seller-offer list, specs, and editorial review quotes) is in development and temporarily disabled while we update to Google Shopping's latest page layout. The core product listing (title, merchant, price, rating, review count, delivery, discount) is fully supported today.
  • imageUrl on product rows is usually empty. Google Shopping lazy-loads product images on its result cards, so image URLs from the result grid are typically unavailable. Image support will return alongside product detail enrichment.
  • Currency honoring varies. Setting currency: "EUR" with country: "us" may still return USD prices if Google has no EUR inventory for that market β€” priceRaw always shows the truth.
  • startUrls must be Google domains. URLs from other sites are skipped with a warning.

Pricing

Flat $2.50 per 1,000 products (pay-per-result). No compute charges β€” you only pay per product returned, so the cost is predictable no matter how long a run takes or how much proxy bandwidth it uses.

ResultsCost
100$0.25
1,000$2.50
10,000$25.00

Google Shopping caps pagination at roughly 200 products per query, so a single-query run is billed for at most ~200 rows β€” see Good to Know above for details on what counts as a billable row.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect your results to the tools you already use:

  • Apify API β€” Full programmatic access to runs and datasets
  • Webhooks β€” Get notified when a run completes
  • Google Sheets β€” Direct spreadsheet export of the dataset
  • Zapier / Make / n8n β€” Automate workflows across 1,500+ apps
  • Slack / Email β€” Notifications on run completion or new results
  • Datasets β€” Download as JSON, CSV, XML, or Excel

This actor is intended for legitimate market research, price monitoring, competitive analysis, and catalog enrichment. You are responsible for using the data in compliance with applicable laws and with Google's Terms of Service. Do not use the output for spam, harassment, deceptive pricing, or any illegal purpose. The actor collects only publicly visible product listings β€” no login, no personal data, and no private content.