How to extract product data from Google Shopping using an API
Google Shopping aggregates prices from thousands of sellers, making it a goldmine for competitive intelligence. This tutorial shows you how to extract that data programmatically using a REST API.
Skip the scraping stack. Our Google Shopping Scraper API returns live prices, every seller offer, EAN→Google SKU matches, product variants and reviews from 40+ countries in one JSON call — no proxies, parsers or browser farms to maintain.
Why Google Shopping data matters
Google Shopping aggregates pricing information from thousands of online retailers, including independent webshops that never list on major marketplaces like Amazon or Bol.com. This breadth of coverage makes it an indispensable source for competitive intelligence. Retailers who rely solely on marketplace data miss pricing signals from direct-to-consumer brands, niche specialty shops, and regional retailers that collectively influence consumer price expectations. Google Shopping data reveals the true competitive landscape for any product identified by EAN code, exposing the full range of prices consumers encounter during their purchasing research. For brands monitoring MAP compliance, Google Shopping provides visibility into unauthorized sellers and gray-market pricing that marketplace-only monitoring cannot detect.
- Covers independent webshops, DTC brands, and niche retailers beyond major marketplaces
- Reveals the full price range consumers encounter during purchase research
- Detects unauthorized sellers and gray-market pricing for MAP compliance
- Available across 40+ countries for comprehensive international competitive analysis
Setting up your first API call
ShoppingScraper's /offers endpoint returns every seller offer for a product on Google Shopping by its EAN/GTIN. The API returns structured JSON containing seller names, prices, shipping costs, product conditions, and direct links to each offer. Authentication is a simple api_key query parameter, and responses arrive in a few seconds. To make your first call, register for a ShoppingScraper account, retrieve your API key from the dashboard, and construct a GET request with your EAN and the target Google Shopping site. The site parameter (e.g. shopping.google.nl, shopping.google.de) determines which Google Shopping domain is queried, so you can compare pricing across national markets with the same EAN.
- Endpoint:
GET https://api.shoppingscraper.com/offers - Required parameters:
site(e.g.shopping.google.nl),ean,api_key - Optional:
gl(country),hl(language),availability - Returns: product title, brand, availability, and an array of offers (seller, price, shipping, total, condition) — 1 credit per call
curl "https://api.shoppingscraper.com/offers?site=shopping.google.nl&ean=8720246689310&api_key=YOUR_API_KEY"import requests
resp = requests.get(
"https://api.shoppingscraper.com/offers",
params={
"site": "shopping.google.nl",
"ean": "8720246689310",
"api_key": "YOUR_API_KEY",
},
)
offers = resp.json()Parsing and storing results
Each API response includes a list of offers sorted by total price including shipping. Store results in your database with a timestamp for historical tracking, enabling trend analysis over days, weeks, and months. Normalize seller names to handle formatting variations like 'Amazon.de' versus 'Amazon DE' or 'Mediamarkt' versus 'Media Markt' by maintaining a seller alias table. Deduplicate offers from the same seller at different price points, which can occur when a retailer lists both new and refurbished inventory. Parse the shipping cost field separately from the product price because the total landed cost is what consumers compare. Include the product condition field in your storage schema to distinguish new, refurbished, and used offers in your competitive analysis.
- Store every observation with a UTC timestamp for historical tracking
- Build a seller alias table to normalize name variations across markets
- Deduplicate same-seller offers at different price points or conditions
- Parse shipping costs separately to calculate total landed cost for comparison
Scaling to thousands of products
Use ShoppingScraper's scheduler for recurring catalog-wide monitoring, or fan out concurrent /offers calls for high-volume lookups across your entire product catalog. Rate limits are generous on paid plans, supporting hundreds of thousands of monthly requests. Implement retry logic with exponential backoff and random jitter for transient errors to prevent overwhelming the API during temporary service interruptions. Process results asynchronously using Python's asyncio with httpx and a Semaphore to limit concurrent requests to 25, preventing memory bloat while maintaining high throughput. For catalogs exceeding 10,000 products, tier your monitoring frequency by product importance: hourly checks for top-revenue items, daily for mid-tier, and weekly for long-tail products.
- Scheduler handles recurring catalog-wide crawls hands-free
- Asyncio with Semaphore(25) for concurrent
/offersrequest management - Tier monitoring frequency by product revenue contribution
- Exponential backoff with jitter for resilient retry logic
Handling multi-country queries
Google Shopping operates across more than 40 country domains, each with its own set of local retailers and pricing dynamics. ShoppingScraper's country parameter lets you query any supported domain, enabling cross-border price comparison from a single API integration. Compare how the same product is priced across Germany, the Netherlands, France, and the UK to identify markets where you hold a competitive advantage or where expansion opportunities exist. Currency conversion is handled automatically in the API response, but store raw local-currency prices alongside converted values to preserve analytical accuracy. For products sold internationally, schedule regular multi-country sweeps to detect pricing disparities that indicate parallel import opportunities or regional promotional activity.
- Query 40+ Google Shopping country domains with a single API integration
- Compare cross-border pricing to identify expansion opportunities
- Store both local-currency and converted prices for analytical accuracy
- Detect regional promotions and parallel import pricing patterns
Combining Google Shopping with marketplace data
The most complete competitive picture comes from combining Google Shopping data with direct marketplace scraping on Amazon, Bol.com, and other platforms. Cross-reference seller prices on Google Shopping with their marketplace listings to identify pricing inconsistencies that signal arbitrage opportunities or seller-level pricing strategies. A retailer offering the same product at different prices on Google Shopping versus Amazon may be testing price sensitivity or may have forgotten to update one channel. ShoppingScraper enables this cross-platform analysis through its unified API, where the same EAN code queries both Google Shopping and marketplace endpoints, returning comparable structured data. Build a unified price position report that shows your ranking across all channels simultaneously.
Automating alerts and reporting
Set up automated workflows that transform raw API data into actionable business intelligence. Configure threshold-based alerts that notify your pricing team via email, Slack, or webhook whenever a new competitor appears on Google Shopping, a competitor drops their price by more than a defined percentage, or a product that was previously unavailable becomes listed again. Build weekly competitive reports that summarize your price position across Google Shopping markets, highlight products where you moved up or down in the ranking, and identify emerging competitors entering your categories. ShoppingScraper's scheduled monitoring handles the data collection automatically, and most teams connect the output to BI tools like Power BI, Tableau, or Google Sheets for visualization.
- Threshold alerts for new competitors, price drops, and availability changes
- Weekly competitive reports summarizing price position across markets
- Integration with BI tools like Power BI, Tableau, or Google Sheets
- Scheduled monitoring for hands-free data collection and alerting
CTO & Co-founder
Full-stack engineer specializing in web scraping, API design, and AI applications for e-commerce. Built ShoppingScraper's infrastructure processing 1M+ daily product lookups.