Google Shopping Scraper: Prices, Stores, Price History & GTIN
Tauqeer Abbas · @nextgensda
Search Google Shopping in any country: products with prices, merchants and ratings; details and specs, every store's offer, per-store price history and reviews; look products up by GTIN/UPC/EAN. Filters for price, rating, brand, store and sale. Pay per result.
About
Google Shopping Scraper: Prices, Stores, Price History & GTIN
Search Google Shopping in any country and get every product with its price, store, rating and reviews count. Add what you need on top: the product's details and specs, every store's offer, 12 months of price history per store, review texts. Look products up by GTIN / UPC / EAN. Filter by price, rating, brand, store, sale and any filter Google shows. No Google account, no API key. One monthly rental, no per-row fees.
What it does
- Search by keywords, or paste Google Shopping links (their filters are kept). Up to ~240 products per query, in Google's order or sorted by price or rating.
- Filters: min/max price, min rating, on sale, brand, store, and any filter chip Google offers for the search ("Wireless", "Used", "Small business", a category...).
- Product details: description, specs, variants (colour, size), images, videos, review summary and topics, Google's AI insights.
- Every store's offer: price, shipping, condition, availability, delivery and returns, seller rating, payment options and the store's link, for up to 1,000 stores a product.
- Price history: each store's daily price over up to 12 months, the typical price range, and the sale events (Black Friday, holidays) Google marks.
- Reviews: title, text, rating, date and source.
- GTIN / UPC / EAN lookup: barcodes matched to their Google Shopping product, with details, offers and price history.
- Any market:
countryandlanguage(us, gb, de, fr, ca, au...): local stores, prices and currency.
Why this one
| This actor | Typical Google Shopping scrapers | |
|---|---|---|
| Every store's offer | yes, up to 1,000 stores | the first 3-5 |
| Price history per store | yes, 12 months | rarely |
| GTIN / UPC / EAN lookup | yes | some |
| Filters (price, rating, brand, store, chips) | all of them | a few |
| Specs, variants, review topics, AI insights | yes | partly |
| Extras | read only when you ask for them | often always on |
Input examples
Search with filters:
{
"queries": ["air fryer"],
"country": "gb",
"maxPrice": 100,
"minRating": 4,
"sort": "price_low",
"maxItems": 50
}
Price comparison across every store:
{
"queries": ["sony wh-1000xm5"],
"maxStores": 100,
"includePriceHistory": true,
"maxItems": 5
}
Barcodes:
{
"gtins": ["009800895007", "045496883386"],
"maxStores": 20,
"includePriceHistory": true
}
A Google Shopping link (filters included):
{
"startUrls": [{"url": "https://www.google.com/search?q=running+shoes&udm=28&gl=us"}],
"maxItems": 100
}
Output
One row per product (dataType: "product"):
{
"dataType": "product",
"title": "Sony WH-1000XM6 Wireless Noise Canceling Headphones",
"brand": "Sony",
"price": "$379.99",
"price_value": 379.99,
"currency": "USD",
"price_was": null,
"merchant": "BrandsMart USA",
"rating": 4.66,
"reviews": 6139,
"position": 2,
"image": "https://encrypted-tbn1.gstatic.com/shopping?q=...",
"shelves": ["Noise-Cancelling Headphones"],
"source": {"type": "query", "query": "headphones", "country": "us", "language": "en"},
"details": {
"description": "...", "specs": [{"name": "Brand", "value": "Sony"}],
"variants": [{"facet": "Color", "options": ["..."]}], "store_count": 238,
"price_min": 305.88, "price_max": 459.99, "review_topics": ["..."]
},
"offers": [
{"merchant": "Best Buy", "price": "$378.00", "price_value": 378.0, "currency": "USD",
"shipping": "Free delivery", "condition": null, "seller_rating": 4.5,
"url": "https://www.bestbuy.com/...", "badges": ["Most popular"]}
],
"price_history": {
"typical": "$299 to $459", "typical_low": 299.0, "typical_high": 459.0,
"stores": [{"store": "Sony", "points": [{"date": "2025-11-09", "price": 449.0}]}],
"events": [{"date": "2025-11-28", "name": "Black Friday"}]
},
"reviews": [{"title": "...", "text": "...", "rating": 5, "date": "2 months ago", "source": "bestbuy.com"}]
}
details, offers, price_history and reviews are filled when asked for.
A GTIN that Google can't match gets a free row with dataType: "gtin".
Pricing
One monthly rental, no per-row fees: details, every store, price history and reviews included. Runs use Bytewells compute and proxy traffic from your credit. The actor needs 2 GB of memory (the default): it opens a Google session in Chrome on a US residential IP and reads everything else over plain HTTP on that session.
Measured on Bytewells:
| Run | Products | Time | Usage |
|---|---|---|---|
| 10 products with details and up to 30 stores each | 10 | 4 min | $0.12 |
| 60 products with details | 60 | 21 min | $0.32 |
Most of the time and usage goes into opening Google sessions: one serves ~45 requests, and some IPs are refused before one opens. A product found by several searches is delivered once.
Good to know
- Google offers ~200-240 products per query; use several queries or filters for more.
- GTIN lookup matches the barcode to the product Google names for it: a
size or colour variant can come back as its sibling. The match score is in
source.match_score. - A query Google can't match returns popular products rather than nothing; the log notes searches whose results don't contain the query's words.
- Prices are what Google shows at the moment of the run, in the market's currency.
- Long store lists and price history take more time: plan ~1 minute per 100 stores read.
Use it from your tools
Call it from the Bytewells API (Apify-compatible: apify-client works with
its base URL), a schedule, or an AI agent via the Bytewells MCP server;
results export to JSON, CSV or Excel.
Input
Preview of the input form. Rent the Actor to fill it in and start runs from the console.
queriesProducts to search for, e.g. "air fryer", "running shoes". Each query reads up to Max products per search (Google offers ~200-240 a query).
gtinsBarcodes to look up (8, 12, 13 or 14 digits). Each is matched to its Google Shopping product (Google matches by the product's name: a size or colour variant can come back as its sibling); unmatched codes get a free row saying so. Always read with details.
startUrlsGoogle Shopping search links (google.com/search?...&udm=28), with their own filters: the query, country, language and filters are taken from the link.
countryTwo-letter country code of the Google Shopping market (us, gb, de, fr, ca, au...): its stores, prices and currency.
languageTwo-letter language code for the results (en, de, fr...).
sortGoogle's own sort order.
minPriceOnly products at or above this price.
maxPriceOnly products at or below this price.
minRatingGoogle's rating filter, whole stars 1-4 (e.g. 4: 4 stars and up). Products rated below it are left out (not charged).
onSaleOnly discounted products.
brandOnly this brand, e.g. "Sony".
storeOnly this store, e.g. "Walmart", "Best Buy".
filtersAny filter Google shows for the search, by its label: "Wireless", "Noise Canceling Headphones", "Used", "Small business", "Free shipping". Use "Group: Label" when a label is ambiguous. A label Google doesn't offer stops that search with the list of offered ones in the log.
includeDetailsDescription, specs, variants, images, videos, review summary and topics, the first 3-5 stores' offers (charged as product details).
maxStoresEvery store's offer, up to this many per product (price, shipping, condition, seller rating, link). 0: only the 3-5 Google shows first. Charged per 10 stores read. Implies details.
includePriceHistoryGoogle's price chart: each store's daily price over up to 12 months, the typical price range and sale events. Implies details.
maxReviewsReview texts per product (title, rating, date, source, text), 100 a page. Implies details.
maxProductsPerSearchProducts read per query or link (Google offers ~200-240).
maxItemsThe run stops after this many products.
proxyConfigurationGoogle Shopping needs residential IPs; Apify's residential proxy is the default.
API
Bytewells speaks the Apify API. Existing integrations keep working: point apify-client at https://bytewells.com/api and use your Bytewells API token (Console → Settings → API access). The Actor ID is nextgensda/google-shopping-scraper (or nextgensda~google-shopping-scraper in URLs).
JavaScript · apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.BYTEWELLS_TOKEN,
baseUrl: 'https://bytewells.com/api',
});
const input = {
"queries": [
"wireless earbuds"
],
"includeDetails": true,
"maxStores": 30,
"maxProductsPerSearch": 10,
"maxItems": 10
};
const run = await client.actor('nextgensda/google-shopping-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Python · apify-client
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["BYTEWELLS_TOKEN"], api_url="https://bytewells.com/api")
run_input = {
"queries": [
"wireless earbuds"
],
"includeDetails": True,
"maxStores": 30,
"maxProductsPerSearch": 10,
"maxItems": 10
}
run = client.actor("nextgensda/google-shopping-scraper").call(run_input=run_input)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)HTTP · curl
curl -X POST "https://bytewells.com/api/v2/acts/nextgensda~google-shopping-scraper/runs" \
-H "Authorization: Bearer $BYTEWELLS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries":["wireless earbuds"],"includeDetails":true,"maxStores":30,"maxProductsPerSearch":10,"maxItems":10}'Runs are billed as compute from your credit balance. Paid Actors need an active rental or trial; otherwise the API answers 402 rental-required.
Related
More Actors from the same publisher.

Google Maps Full Suite — Places, Reviews & Grid Search
Tauqeer Abbas · @nextgensda
Google Maps places, full details, reviews, People Also Search For and directions in one Actor.
AutomationLead generationMarketing$19/mo7-day free trial
Reddit Scraper: Posts, Comments, Users, Search & Explore
Tauqeer Abbas · @nextgensda
Scrape Reddit posts, full comment threads, users, communities and comment search by keyword, plus the Explore tab's recommended communities. API-grade JSON with no login or browser, unaffected by Reddit's 2026 .json shutdown. Monitor brands and keywords with only-new runs.
Social mediaLead generationAI$29/mo3-day free trial
TikTok Scraper: Videos, Profiles, Comments, Sounds & Places
Tauqeer Abbas · @nextgensda
Scrape TikTok videos, profiles, hashtag feeds, keyword searches, sounds, places, followers, Shop products and comments. Full metadata: description, author, plays, likes, comments, shares, saves, music, video URLs, covers. No browser and no login; 256 MB.
Social mediaLead generationAI$29/mo3-day free trial
Google Travel Scraper: Flights, Hotels & Vacation Rentals
Tauqeer Abbas · @nextgensda
Scrape Google Flights, Google Hotels and vacation rentals in one run: every itinerary with price, stops, layovers, CO2 and return flights; hotels and rentals with nightly price, rating, class, bedrooms and every booking site's offer. Price insights included. Fast HTTP scraper, no browser.
Travel$39/mo3-day free trial