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

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

Pricing

from $8.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 $8.00 / 1,000 google-skus

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

12

Bookmarked

483

Total users

55

Monthly active users

1.3 days

Issues response

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

Products are looked up by EAN/GTIN only. Every product requires a valid EAN/GTIN barcode. 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.

Data is served from a fresh cache. The first time you request an EAN (or when the cached data is older than 24 hours), the actor triggers a background fetch and returns a free "pending" record asking you to run again in about 1 hour — you are not charged for that. Once the data is ready, the same request returns the full offers and is charged. See Pricing.

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. Amazon.fr, Zalando.fr)
sellerReferencestringDirect URL to the product listing at the seller
pricestringBase product price
shippingPricestring | nullShipping cost, or null if unknown
totalPricestringPrice + shipping combined
conditionstringProduct condition (New, Used, Refurbished)
availabilitystringStock availability (e.g. InStock)

Example — Product Found

{
"ean": "0198376596101",
"title": "Sandales Skechers Desert Kiss Low Femme",
"brand": null,
"url": null,
"thumbnail": "https://encrypted-tbn3.gstatic.com/shopping?q=...",
"currency": "EUR",
"found": true,
"offers_count": 7,
"lowest_total_price": 35.99,
"highest_total_price": 82.0,
"offers": [
{
"sellerName": "Amazon.fr",
"sellerReference": "https://www.amazon.fr/Skechers-Femme-Desert-Sandale-Glissante/dp/B0DC8QSWVC",
"price": "35.99",
"shippingPrice": null,
"totalPrice": "35.99",
"condition": "New",
"availability": "InStock"
},
{
"sellerName": "obishoes.fr",
"sellerReference": "https://obishoes.fr/sandales/9624-sandales-skechers-bobs-desert-kiss-low-peak-look-114707-noir",
"price": "40.99",
"shippingPrice": "4.95",
"totalPrice": "45.94",
"condition": "New",
"availability": "InStock"
}
]
}

Example — Data Being Fetched (Pending, Free)

When you request an EAN that is not yet cached (or whose cached data is stale), the actor triggers a background fetch and returns this free record. Run the actor again for the same EAN in about 1 hour to get the offers.

{
"ean": "0198376596101",
"gl": "fr",
"found": false,
"status": "pending",
"message": "Data is being fetched for this product. This request is free of charge. Please run the actor again for this EAN in about 1 hour to retrieve the offers.",
"retry_after_hours": 1
}

Example — Input Without EAN (Error Record)

Entries that do not contain a valid EAN/GTIN are not processed. Instead, an error record is added to the dataset:

{
"input": "not-an-ean",
"error": "EAN is required. Supply a valid 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 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 — the only supported identifier. 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)

Every product must include a valid EAN/GTIN. Entries without one 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

You are only charged for records where the offers are actually returned ("found": true).

Data is served from a fresh cache with a 24-hour freshness window:

  • Cache hit (found: true) — offers are returned immediately and the lookup is charged.
  • Cache miss / stale (found: false, status: "pending") — the actor triggers a background fetch and returns a free pending record. No charge is incurred. Run the actor again for that EAN in about 1 hour to retrieve the offers.

Submitting the same EAN or GTIN repeatedly within the freshness window 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)
  • Re-running only the EANs that came back as "pending", after waiting ~1 hour
  • 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.