Google Shopping Scraper - Prices & Offers avatar

Google Shopping Scraper - Prices & Offers

Pricing

from $1.10 / 1,000 shopping offers

Go to Apify Store
Google Shopping Scraper - Prices & Offers

Google Shopping Scraper - Prices & Offers

Search public Google Shopping by product keyword or EAN, GTIN, or Google Shopping SKU. Get product titles, current prices, currencies, merchants, rankings, and price benchmarks in a structured dataset. Filter by market, language, price, condition, rating, delivery, sale status, or merchant.

Pricing

from $1.10 / 1,000 shopping offers

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

🛍️ Compare product offers across Google Shopping

Retail teams, ecommerce sellers, and product researchers can search public Google Shopping with product keywords or EAN, GTIN, and Google Shopping SKU values. The Actor saves each first eligible offer match once, with its product title, current price, currency, merchant, query rank, and price benchmark. Use these rows to compare offers for a chosen market and language.

📦 Google Shopping offer rows

Each dataset row is one offer returned for a submitted keyword or identifier. It includes the product title, current displayed price, currency, merchant, query rank, a price benchmark, and the lowest-priced returned offer. Google may also provide a brand, image, rating, shipping details, return terms, condition, or sale details.

If the same offer appears through another submitted value, the saved row keeps the value that found it first. Rows reflect public Google Shopping data available at collection time. The Actor does not promise real-time merchant pricing, every seller or offer, or a direct merchant listing URL when Google does not expose one.

🚀 Find offers with keywords or identifiers

Run steps

  1. Choose Product keywords or Product identifiers.
  2. Add one or more product keywords, or add EAN, GTIN, or Google Shopping SKU values, in the matching section.
  3. Choose the Google Shopping market and result language.
  4. Add optional price, condition, sale, merchant, rating, review, delivery, or sort settings.
  5. Set Max offers per query or leave it empty to return all available offers until the source is exhausted.
  6. Start the Actor and open the default dataset.

The Actor uses public Google Shopping data and does not need a customer-provided Google credential or login. Each run uses one list. Values in the other choice section are ignored. When a result matches more than one submitted keyword or identifier, only its first eligible match is saved.

⚙️ Input

Choose one discovery method. Add values only to its matching list. Choose a market and language for the Google Shopping results.

Input fields

FieldTypeWhat it does
discoveryMethodstringChooses keywords or identifiers.
productKeywordsstring[]Adds one or more product search phrases, one per item. Used when discoveryMethod is keywords.
productIdentifiersstring[]Adds one or more EAN, GTIN, or Google Shopping SKU values. Used when discoveryMethod is identifiers.
marketstringSets the two-letter Google Shopping market code, such as US, GB, or DE.
languagestringSets the result language code, such as en, de, or fr. A country code can be added when needed, such as pt-BR.
priceRangeobjectSets optional lower and upper prices in the selected market currency.
priceRange.minnumberSets the lower price bound. Use zero or a positive number.
priceRange.maxnumberSets the upper price bound. Use zero or a positive number.
conditionsstring[]Keeps offers with the selected conditions: new, used, or refurbished.
saleOnlybooleanWhen true, keeps only offers that Google marks as discounted.
merchantsstring[]Keeps offers from the listed merchant or marketplace names.
minimumRatingnumberKeeps products rated from this value up to 5 stars.
minimumReviewCountintegerKeeps products with at least this many reviews. Use zero or a positive number.
freeDeliveryOnlybooleanWhen true, keeps only offers that show free delivery.
sortOrderstringOrders offers by relevance, price, rating, reviews, or discount.
maxOffersPerQueryintegerStops after this many offers for each keyword or identifier. Leave it empty to return all available offers until the source is exhausted.

This is the public input from the successful current-beta default-input run:

{
"discoveryMethod": "keywords",
"productKeywords": [
"wireless headphones"
],
"market": "US",
"language": "en",
"saleOnly": false,
"freeDeliveryOnly": false,
"sortOrder": "relevance",
"maxOffersPerQuery": 10
}

🧾 Output

Optional fields are absent when Google Shopping does not provide the related detail.

Run output

FieldTypeWhat it does
datasetstringOpens the Google Shopping offer rows in the default dataset.

Dataset rows

FieldTypeWhat it does
querystringThe keyword or identifier that first produced the offer.
queryTypestringShows whether query is a keyword or an identifier.
queryRankintegerThe offer rank among offers returned for query.
productobjectHolds the product details shown by Google Shopping.
product.titlestringThe product title shown by Google Shopping.
product.brandstringThe product brand when Google Shopping provides it.
product.googleProductIdstringGoogle's product identifier when available.
product.imageUrlstringThe product image URL when Google Shopping provides one.
merchantobjectHolds the merchant details for this offer.
merchant.namestringThe merchant or marketplace seller name shown by Google Shopping.
priceobjectHolds the current displayed offer price and currency.
price.amountnumberThe current displayed price amount.
price.currencystringThe currency code for the current price.
price.previousAmountnumberThe previous displayed price when Google Shopping shows a promotion.
price.discountTextstringThe sale or discount text shown by Google Shopping when available.
ratingobjectHolds product rating details when Google Shopping provides them.
rating.starsnumberThe product star rating shown by Google Shopping.
rating.reviewCountintegerThe product review count shown by Google Shopping.
shippingobjectHolds delivery or shipping details when Google Shopping provides them.
shipping.textstringThe delivery or shipping terms shown by Google Shopping.
shipping.costobjectHolds the numeric shipping cost when Google Shopping provides it.
shipping.cost.amountnumberThe shipping cost amount. Zero means free shipping when the source provides that value.
shipping.cost.currencystringThe currency code for the shipping cost.
returnsobjectHolds return terms when Google Shopping provides them.
returns.textstringThe return terms shown by Google Shopping.
conditionstringThe offer condition when Google Shopping exposes it: new, used, or refurbished.
priceBenchmarkobjectHolds the price benchmark for offers returned for the same query.
priceBenchmark.amountnumberThe benchmark price amount for the query.
priceBenchmark.currencystringThe currency code for the query price benchmark.
lowestPriceOfferobjectHolds the returned offer with the lowest current price for the same query.
lowestPriceOffer.productTitlestringThe product title of the lowest-priced returned offer.
lowestPriceOffer.googleProductIdstringGoogle's product identifier for the lowest-priced offer when available.
lowestPriceOffer.merchantNamestringThe merchant or marketplace seller for the lowest-priced offer.
lowestPriceOffer.priceobjectHolds the current price of the lowest-priced returned offer.
lowestPriceOffer.price.amountnumberThe current price amount of the lowest-priced offer.
lowestPriceOffer.price.currencystringThe currency code for the lowest-priced offer.

Example offer row

This genuine row is from the successful current-beta default-input run. It is shortened because the product image URL is large. The "..." value marks the omitted image data.

{
"query": "wireless headphones",
"queryType": "keyword",
"queryRank": 1,
"product": {
"title": "Anker Soundcore Sport X20 True Wireless Headphones",
"googleProductId": "10833874325720519961",
"imageUrl": "..."
},
"merchant": {
"name": "Best Buy"
},
"price": {
"amount": 79.99,
"currency": "USD"
},
"priceBenchmark": {
"amount": 79.99,
"currency": "USD"
},
"lowestPriceOffer": {
"productTitle": "JLab Rewind 2 Wireless Retro Headphones hbrewind2rblk4",
"merchantName": "JLab",
"price": {
"amount": 26.99,
"currency": "USD"
},
"googleProductId": "4839705362323684555"
},
"rating": {
"stars": 4.5,
"reviewCount": 2100
},
"shipping": {
"text": "Free delivery",
"cost": {
"amount": 0,
"currency": "USD"
}
}
}

💳 Pricing

This Actor uses pay-per-event pricing. The Shopping offer event charges for each offer saved to the default dataset. The exact price is shown on the Pricing tab and can vary by plan tier.

🔌 Integrations

Use the dataset link in the run output or the Apify API to read saved rows. You can schedule runs in Apify when you need repeated collections. This Actor does not keep price history or send alerts.

❓ FAQ

What happens when one offer matches more than one submitted value?

The Actor saves the first eligible match and ignores later matches for that offer. The row keeps the keyword or identifier that first caused it to be saved.

Can I use EAN, GTIN, or Google Shopping SKU values?

Yes. Choose Product identifiers and add one or more values. The output sets queryType to identifier for those rows.

Why is a rating, shipping detail, or return term missing?

Google Shopping does not show every detail for every offer. Optional fields are left out when the source does not provide them.

Can I filter and sort the offers?

Yes. You can set a price range, condition, sale-only, merchant, minimum rating, minimum review count, or free-delivery filter. You can also order offers by relevance, price, rating, reviews, or discount.

What if I leave Max offers per query empty?

The Actor returns all available offers for each query until the source is exhausted. There is no fixed maximum in the input schema.

Are prices real-time and exhaustive?

No. Rows show public Google Shopping data available at collection time. Prices can lag a merchant, and Google may not show every seller or offer.

Does the Actor need a Google login or private data?

No. It uses public Google Shopping data and does not collect private, account-only, or personal data from Google Shopping or merchants.

Does it keep price history or send alerts?

No. The Actor returns current rows for a run. It does not provide built-in historical price monitoring, alerting, or a time-series service.

📝 Changelog

v0.0 (30-09-2026)

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré