Free Google Shopping Scraper - Extract offers from any EAN/SKU avatar

Free Google Shopping Scraper - Extract offers from any EAN/SKU

Pricing

from $5.00 / 1,000 google-skus

Go to Apify Store
Free Google Shopping Scraper - Extract offers from any EAN/SKU

Free Google Shopping Scraper - Extract offers from any EAN/SKU

Grab all offers from all sellers of a Google Shopping EAN/SKU. Whether you're monitoring competitor prices, optimizing your pricing strategy, or tracking market trends, this scraper delivers the insights you need at scale.

Pricing

from $5.00 / 1,000 google-skus

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

10

Bookmarked

453

Total users

62

Monthly active users

1.4 days

Issues response

7 days ago

Last modified

Share

Google Shopping Scraper — Real-Time Price & Offer Data by EAN / GTIN

Extract live pricing data from Google Shopping for any product, identified by EAN or GTIN barcode. Get every seller offer — price, shipping, condition, seller identity — across 25+ countries, in one clean JSON output per product.

Breaking change: retrieval by Google Shopping SKU alone is no longer possible. Every product now requires an EAN/GTIN. You may still supply a SKU alongside an EAN, but the EAN is what is used for retrieval. Entries without a valid EAN produce an error record.

What It Does

This actor resolves your EAN/GTIN codes against Google Shopping and returns a structured dataset of all seller offers. For each product you submit, you receive the full competitive landscape: who is selling it, at what price, with what shipping cost, and under what conditions.

Results are delivered whether a product is found or not. Every lookup counts — see Pricing for why this matters.

Output Schema

Each record in the dataset represents one product lookup.

Product Record

FieldTypeDescription
eanstringEAN / GTIN barcode
titlestringProduct title as listed on Google Shopping
brandstringBrand name
urlstringGoogle Shopping product page URL
thumbnailstringProduct image URL
currencystringISO 4217 currency code (e.g. EUR, GBP)
foundbooleantrue if the product exists on Google Shopping
offers_countintegerNumber of seller offers returned
lowest_total_pricenumberLowest combined price + shipping across all offers
highest_total_pricenumberHighest combined price + shipping across all offers
offersarrayFull list of seller offers — see below

Offer Object

FieldTypeDescription
sellerNamestringShop or marketplace name (e.g. bol.com, Amazon)
sellerCodestringGoogle Shopping's internal seller identifier
sellerReferencestringDirect URL to the product listing at the seller
pricestringBase product price
formerPricestring | nullOriginal price before discount, or null
shippingPricestringShipping cost ("0.00" for free shipping)
totalPricestringPrice + shipping combined
conditionstringProduct condition (New, Used, Refurbished)
shippingMethodstringShipping method (standard, express, etc.)

Example — Product Found

{
"ean": "8720938897238",
"title": "Luminize Oplaadbare wandlamp met Afstandsbediening Dimbaar",
"brand": "Luminize",
"url": "https://www.google.com/search?udm=3&q=shopping&dpr=1#oshopproduct=cid:15946942461803762490&oshop=apv&pvs=0&gl=nl",
"thumbnail": "https://encrypted-tbn0.gstatic.com/shopping?q=...",
"currency": "EUR",
"found": true,
"offers_count": 2,
"lowest_total_price": 39.95,
"highest_total_price": 39.95,
"offers": [
{
"sellerName": "bol.com",
"sellerCode": "7520579",
"sellerReference": "https://www.bol.com/nl/nl/p/...",
"price": "39.95",
"formerPrice": null,
"shippingPrice": "0.00",
"totalPrice": "39.95",
"condition": "New",
"shippingMethod": "standard"
},
{
"sellerName": "Luminize",
"sellerCode": "728738463",
"sellerReference": "https://www.luminize.eu/...",
"price": "39.95",
"formerPrice": null,
"shippingPrice": "0.00",
"totalPrice": "39.95",
"condition": "New",
"shippingMethod": "standard"
}
]
}

Example — Product Not Found

{
"ean": "0000000000000",
"title": null,
"brand": null,
"url": null,
"thumbnail": null,
"currency": null,
"found": false,
"offers_count": 0,
"offers": []
}

Example — Input Without EAN (Error Record)

Entries that do not contain a valid EAN/GTIN (for example, a Google Shopping SKU on its own) are not processed. Instead, an error record is added to the dataset:

{
"input": "2813164546123018462",
"error": "EAN is required. Retrieval by SKU alone is no longer supported - supply an EAN/GTIN (8, 12, 13 or 14 digits) for every product."
}

Input Format

Select your target country from the dropdown (default: Netherlands), then enter one EAN/GTIN code per line:

8720648364181
4024074895542
193575000923

Accepted formats: EAN-8 (8 digits), UPC-A (12 digits), EAN-13 (13 digits), GTIN-14 (14 digits). Any entry that is not a valid EAN/GTIN — including a Google Shopping SKU on its own — is rejected with an error record in the dataset.

Supported Countries

CountryCodeGoogle Shopping Domain
NetherlandsNLshopping.google.nl
GermanyDEshopping.google.de
FranceFRshopping.google.fr
BelgiumBEshopping.google.be
AustriaATshopping.google.at
SwitzerlandCHshopping.google.ch
SpainESshopping.google.es
ItalyITshopping.google.it
PolandPLshopping.google.pl
SwedenSEshopping.google.se
DenmarkDKshopping.google.dk
NorwayNOshopping.google.no
FinlandFIshopping.google.fi
PortugalPTshopping.google.pt
IrelandIEshopping.google.ie
Czech RepublicCZshopping.google.cz
HungaryHUshopping.google.hu
RomaniaROshopping.google.ro
GreeceGRshopping.google.gr
SlovakiaSKshopping.google.sk
CroatiaHRshopping.google.hr
BulgariaBGshopping.google.bg
United KingdomUKshopping.google.co.uk
United StatesUSshopping.google.com
AustraliaAUshopping.google.com.au
CanadaCAshopping.google.ca
BrazilBRshopping.google.com.br
IndiaINshopping.google.co.in
JapanJPshopping.google.co.jp

Supported Product Identifiers

EAN / GTIN barcodes — required for every product. Our matching algorithm resolves these against Google Shopping automatically:

  • EAN-8 (8 digits)
  • UPC-A (12 digits)
  • EAN-13 (13 digits, most common in Europe)
  • GTIN-14 (14 digits)

Google Shopping SKU — retrieval by SKU alone is not possible anymore. A SKU may still be supplied alongside an EAN (it is simply ignored for retrieval), but every product must include an EAN. SKU-only entries return an error record telling you an EAN is needed.

Item Limits and Plan Tiers

PlanLimit
Free20 products per dataset
PaidSet via ACTOR_MAX_PAID_DATASET_ITEMS environment variable

The actor tracks unique products by EAN. Re-submitting the same identifier in a single run does not count twice. Items already in the dataset from previous runs count toward the limit.

Configuring a paid limit:

  1. Apify Console → Your Actor → Settings → Environment variables
  2. Add ACTOR_MAX_PAID_DATASET_ITEMS with your desired value (e.g. 5000)

Pricing

Every product lookup — whether the product is found or not — is charged.

This is not a policy choice; it reflects the actual infrastructure cost. Each lookup runs the full resolution pipeline: our matching algorithm submits a real query to Google Shopping, handles anti-bot measures, resolves the EAN/GTIN to a SKU, and fetches all available offers. A "not found" result consumes the same resources as a successful one, because the absence of a result is only confirmed after the full pipeline has executed.

Submitting the same EAN or GTIN repeatedly drives up costs with no additional value. We recommend:

  • Caching results on your side and setting a minimum re-query interval (24 hours is a reasonable baseline)
  • Using "found": false records to identify products that are not listed on Google Shopping in a given market — and excluding them from future runs until there is a reason to believe their status has changed
  • Reviewing your input list for duplicates before each run

Use Cases

Retail price monitoring — track how your products are priced across all Google Shopping sellers in each of your markets. Identify undercutting, map-price violations, and grey-market listings.

Dynamic repricing — feed real-time competitor prices into your repricing engine to stay competitive without eroding margin.

Market entry research — before expanding to a new country, assess the competitive landscape by querying your catalogue against that market's Google Shopping.

Marketplace benchmarking — compare your prices against the lowest and highest offers across multiple sellers to understand your positioning.

Price drop alerts — schedule regular runs and compare lowest_total_price against a stored baseline to trigger alerts when a competitor drops price significantly.

Support

For questions, issues, or feature requests, open a ticket via the Apify platform.