Google Shopping Scraper & Price Tracker [NO LOGIN] โ
Pricing
from $2.50 / 1,000 products
Google Shopping Scraper & Price Tracker [NO LOGIN] โ
Google Shopping Scraper and price tracker: prices, ratings and deals by keyword or product ID, plus every store's offer with shipping, tax and total price. Flags price drops and new lows between runs, any country. $2.50 per 1,000 products; empty searches and failed rows free. CSV, Excel, JSON, API.
Pricing
from $2.50 / 1,000 products
Rating
5.0
(3)
Developer
Unseen User
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
๐ Google Shopping Scraper & Price Tracker - Prices, All Sellers & Shipping
Google Shopping prices by keyword or product ID: every store's offer with shipping and total price, ratings, deals. Built for price monitoring.
Use it as a Google Shopping price tracker for your business: run it on a schedule and see what every store charges for the products you sell or watch, with shipping, tax and the total price, plus a flag when a price drops to a new low. No Google account, cookies or API key needed.
โก Why This Actor?
All-in-one actor: input product keywords or Google product IDs, get back Google Shopping prices PLUS every store's offer with shipping, tax and total price in one run. Built for price monitoring and competitor price checks, where the number that matters is what the buyer actually pays, not the headline price. You choose which extras to switch on: the full store list and product details are optional. This actor returns product and store data as Google Shopping shows it. It does not return barcodes (GTIN/UPC/EAN), it does not return review text, and it does not log in to anything.
๐ฏ Use Cases
- Competitor price monitoring - track what rival stores charge for the same product, every day, with shipping and tax included
- MAP compliance checks - spot stores advertising below your minimum advertised price, with the store name, domain and offer link as evidence
- Lowest-total-price finder - compare base price, shipping and tax across up to 50 stores per product and get the cheapest total in one field
- Retail assortment research - see which products, brands and price points rank on Google Shopping for a category keyword in a given country
- Deal and discount tracking - capture old prices, discount percentages, coupon codes and "price drop" badges as they appear
- Marketplace seller discovery - find which stores and marketplaces carry a product, with their ratings and availability
- Google Shopping price tracking for your catalog - schedule daily runs on saved product IDs and get
previousPrice,priceChangeandisNewLowestfor every product, so price drops stand out without a spreadsheet - Competitor price tracking across stores - follow the same product at every store that sells it and see who is cheapest once shipping and tax are added
- Google Shopping API for your own tools - call the Actor from your code or no-code tool through the Apify API and get clean JSON rows instead of parsing result pages yourself
๐ Quick Start
- Click Try for free on this Actor's page
- Enter one or more keywords in Search keywords, or products in Product IDs (see Inputs Overview below)
- Run the Actor
- Download results as JSON, CSV, or XLSX, or pull via Apify API
โฑ๏ธ Expect about 1 minute per search. Each search or product lookup takes roughly a minute to come back. Searches run in parallel, so 20 keywords take a few minutes, not 20.
โ๏ธ How it works
- Live data - every run asks Google Shopping at run time, for the country and language you pick. Nothing is served from an old copy.
- No login - no Google account, cookies or API key. You only need an Apify account.
- What ends a run - the run finishes when every keyword and product ID is done. It stops early, with a clear status message, when your maximum cost per run is reached or the free-plan limit is hit. Either way, you keep every result delivered so far.
- Typical speed - about a minute per search, with searches running in parallel.
โ๏ธ Inputs Overview
| Input | Type | Required | Description | Example/Allowed Values |
|---|---|---|---|---|
queries | array of strings | โ ๏ธ One of queries / productIds required | Product keywords to search on Google Shopping. One search per keyword, up to 200 per run | ["sony wh-1000xm5", "standing desk"] |
productIds | array of objects | โ ๏ธ One of queries / productIds required | Google product IDs from an earlier run, for detail lookup, up to 500 per run. Each object takes productId, dataDocid, gid (send all three when you have them). productId alone works but is less reliable. You can paste whole output rows from an earlier run; extra fields are ignored. Every lookup includes product details | [{"productId": "3805205938126402128", "dataDocid": "9874368152810998595", "gid": "9961958114952839788"}] |
country | string (select with suggestions) | โ | Market to search. Pick from the list or type any location name supported by Google Shopping. Default United States | United States, United Kingdom, Germany, Canada, Australia |
location | string | โ | Optional finer location that overrides country. Use the full "City,Region,Country" format | London,England,United Kingdom |
language | string (select with suggestions) | โ | Interface language code. Pick from the list or type any other code. Default en | en, de, fr, es |
maxProductsPerQuery | integer | โ | Max products per keyword (0 = all, up to 120, free plan: up to 5). Default 40. Each extra 40 products is another results page. Free-plan runs stop at 5 results in total, whatever this field says | 40 |
sortBy | enum | โ | Sort order, applied by Google. Default relevance | relevance, price_low_to_high, price_high_to_low, review_score |
minPrice | integer | โ | Minimum price in local currency, applied by Google (whole numbers only) | 50 |
maxPrice | integer | โ | Maximum price in local currency, applied by Google (whole numbers only) | 300 |
includeDetails | boolean | โ | Load description, features, specifications and variations for each product in keyword mode. Always on in product-ID mode. Default false | false |
includeSellers | boolean | โ | Load every store's offer with base price, shipping, tax and total. Default false | false |
maxSellers | integer | โ | Max store offers per product (0 = all, up to 50). Default 10 | 10 |
compareWithPreviousRun | boolean | โ | Add previousPrice, priceChange and isNewLowest by comparing with the last run. Saved in a named key-value store in your own Apify account. Default false | false |
Input example: keyword search
{"queries": ["sony wh-1000xm5", "bose quietcomfort ultra"],"country": "United States","language": "en","maxProductsPerQuery": 40,"sortBy": "price_low_to_high","minPrice": 200,"includeSellers": false}
Input example: daily price monitor (run on a schedule)
{"productIds": [{ "productId": "3805205938126402128", "dataDocid": "9874368152810998595", "gid": "9961958114952839788" },{ "productId": "1113158713975221117" }],"country": "United Kingdom","language": "en","includeSellers": true,"maxSellers": 10,"compareWithPreviousRun": true}
๐ค Output Fields
One dataset row per product. Fields that Google does not show for a product are null, never guessed. When Google lists the same product twice for one keyword, only the first listing is returned (and charged). Text fields are returned as plain text, without HTML tags or entities. In Apify Console the results open in three views: Overview (products, prices and price changes), Store offers (one line per store offer) and Errors and notices (explanation rows).
| Field | Type | Description |
|---|---|---|
status | string | ok for product rows. Explanation rows use no_data or error with an error object (type, message) and "charged": false |
query | string or null | Keyword that found this product (null in product-ID mode) |
searchedFor | string or null | What Google actually searched for when it rewrote your keyword (for example a spelling correction). Null when Google searched your keyword as typed. When set, the run log and status message say so: check your keyword |
mode | string | keyword or productId |
position | integer or null | Absolute rank on the Google Shopping results page |
itemType | string or null | serp (main results) or carousel (product carousel, flattened) |
productId | string or null | Google product ID |
dataDocid | string or null | Google result element ID (reuse for lookups) |
gid | string or null | Google global product ID (reuse for lookups) |
title | string | Product title |
description | string or null | Short description from the results page (main results only), or full description when details are loaded |
price | number or null | Headline price. In product-ID mode, the lowest current offer price on the product page |
currency | string or null | ISO currency code |
originalPrice | number or null | Previous price when Google shows one (main results only) |
discountPercent | number or null | Calculated from originalPrice and price, or the percentage in the special offer |
specialOffer | object or null | title, percentageDiscount, fixedDiscount, couponCode, couponInfo |
merchant | string or null | Store shown on the result card. In product-ID mode, the store of the lowest offer used for price |
productUrl | string or null | Google Shopping product page URL. All links are returned as full URLs on the Google site of the selected country. In product-ID mode it always opens the product's Google Shopping page (never one store's offer); each store's own link is in sellers[].url |
imageUrl | string or null | Featured image URL |
rating | number or null | Product rating value |
ratingMax | number or null | Rating scale maximum (usually 5) |
reviewCount | integer or null | Number of product reviews (a count only, no review text) |
delivery | string or null | Delivery message as shown, for example "Free delivery" |
deliveryPrice | number or null | Delivery cost when shown. 0 when the listing says plain free delivery; null when delivery is free only above an order value |
freeDeliveryThreshold | number or null | Order value from which delivery is free, for example 100 for "Free delivery on ยฃ100+" |
storesCount | integer or null | Number of stores offering the product, when shown |
tags | array of strings | Tags Google attaches to the product |
details | object or null | Only with details on: description, features[], specifications[] (block, name, value), variations[] (productId, gid, dataDocid, title, url, category), images[], rating, ratingVotes |
sellers | array or null | Only with includeSellers: per store rank, name, domain, url, basePrice, shipping, tax, totalPrice, currency, condition, availability, badge, offerDetails, storeRating, storeRatingCount |
sellersCount | integer or null | Number of store offers returned |
lowestTotalPrice | number or null | Lowest totalPrice across returned store offers |
lowestTotalPriceSeller | string or null | Store with the lowest total price |
previousPrice | number or null | Only with compareWithPreviousRun: tracked price from the last run |
priceChange | number or null | Tracked price now minus previousPrice |
isNewLowest | boolean or null | True when the tracked price is the lowest seen so far for this product and country |
country | string | Market used |
language | string | Language used |
scrapedAt | string (ISO 8601) | When the row was produced |
warning | object (only when needed) | Present when an extra could not be loaded for this product: type (DETAILS_UNAVAILABLE or SELLERS_UNAVAILABLE) and message. That extra is not charged |
_metadata | object | mode, inputIndex, fetchedAt, chargedEvents (events charged for this row), extrasCopiedFromEarlierRow |
Tracked price: comparisons use lowestTotalPrice when store offers were loaded, otherwise price. Keep the same settings between runs so you compare like with like.
Example output row
A real row from a live run (product-ID mode with store offers on). Long lists are shortened here, so the row shows 2 of its 4 store offers.
{"status": "ok","query": null,"searchedFor": null,"mode": "productId","position": null,"itemType": null,"productId": "17755277695162489284","dataDocid": "8123523306754565002","gid": "11726664398501807381","title": "Sony WH-1000XM5 Wireless Noise Canceling Headphones","description": "Active Noise Cancelation From airplane noise to peopleโs voices, our WH-1000XM5 wireless headphones with multiple microphone noise canceling keep out more high ...","price": 228,"currency": "USD","originalPrice": null,"discountPercent": null,"specialOffer": null,"merchant": "Best Buy","productUrl": "https://google.com/search?ibp=oshop&q=Sony+WH-1000XM5+Wireless+Noise+Canceling+Headphones&prds=gpcid:11726664398501807381,rds:PC_11726664398501807381%7CPROD_PC_11726664398501807381,headlineOfferDocid:8123523306754565002,catalogid:17755277695162489284,pvo:3,pvt:hg&hl=en&gl=US","imageUrl": "https://encrypted-tbn3.gstatic.com/shopping?q=tbn:ANd9GcTjk5UeTqX0MOas_HKwuRqtGczUFqJIr7Jl16Y83662dVc1adk_th6dY0a2vLDn0k_LbyaojBK3QKpix72-5XN68GCqxd7w_LJ0KvnxEsvqFBdYb3ffND4M","rating": 4.6,"ratingMax": 5,"reviewCount": 14585,"delivery": null,"deliveryPrice": null,"freeDeliveryThreshold": null,"storesCount": null,"tags": [],"details": {"description": "Active Noise Cancelation From airplane noise to peopleโs voices, our WH-1000XM5 wireless headphones with multiple microphone noise canceling keep out more high ...","features": [],"specifications": [{"block": null,"name": "Brand","value": "Sony"},{"block": null,"name": "Noise Canceling","value": "Yes"},{"block": null,"name": "With Microphone","value": "Yes"}],"variations": [{"productId": "17755277695162489284","gid": "11726664398501807381","dataDocid": "8123523306754565002","title": "Black","url": "https://www.google.com/search?ibp=oshop&q=oid:8123523306754565002&hl=en&gl=us&prds=catalogid:17755277695162489284,gpcid:11726664398501807381,headlineOfferDocid:8123523306754565002,pvo:3,pvt:hg,rds:PC_11726664398501807381|PROD_PC_11726664398501807381,pvf:Eg4iBWNvbG9yKgVibGFjaw&pvf=Eg4iBWNvbG9yKgVibGFjaw","category": "Color"}],"images": ["https://encrypted-tbn3.gstatic.com/shopping?q=tbn:ANd9GcTjk5UeTqX0MOas_HKwuRqtGczUFqJIr7Jl16Y83662dVc1adk_th6dY0a2vLDn0k_LbyaojBK3QKpix72-5XN68GCqxd7w_LJ0KvnxEsvqFBdYb3ffND4M","https://encrypted-tbn2.gstatic.com/shopping?q=tbn:ANd9GcThFFVST0JD1B2RBYLh070s6yEGTzwWy9NIi8BFcN6SXlCVvLBqQoJ8UmuCIeR-Sr68c5d6_2cvnCuUOjfFvQsoD5CFmX7npWxyVJA368RJCNSXhIKQ3PQoCA"],"rating": 4.6,"ratingVotes": 14585},"sellers": [{"rank": 1,"name": "Best Buy","domain": "www.bestbuy.com","url": "https://www.bestbuy.com/product/sony-wh-1000xm5-wireless-noise-cancelling-over-the-ear-headphones-black/J7XSRH5CXG/sku/6505727?utm_source=feed","basePrice": 228,"shipping": null,"tax": null,"totalPrice": 228,"currency": "USD","condition": null,"availability": "in_stock","badge": "42% off $398","offerDetails": "Sony - WH-1000XM5 Wireless Noise Cancelling Over-the-Ear Headphones - Black","storeRating": 4.63,"storeRatingCount": 1702},{"rank": 2,"name": "Sony","domain": "electronics.sony.com","url": "https://electronics.sony.com/audio/headphones/headband/p/wh1000xm5-b?srsltid=AU7gw4W4r6RS9ijWIGLDxpGBkZlYEOh1vSHPsm5bffkD5faOPbQltnrlaro","basePrice": 228,"shipping": null,"tax": null,"totalPrice": 228,"currency": "USD","condition": null,"availability": "in_stock","badge": "42% off $400","offerDetails": "Sony WH-1000XM5 Premium Wireless Noise Cancelling Headphones Black","storeRating": 4.764,"storeRatingCount": 40}],"sellersCount": 4,"lowestTotalPrice": 228,"lowestTotalPriceSeller": "Best Buy","previousPrice": 228,"priceChange": 0,"isNewLowest": false,"country": "United States","language": "en","scrapedAt": "2026-10-21T13:51:36.756Z","_metadata": {"mode": "productId","inputIndex": 0,"fetchedAt": "2026-10-21T13:51:36.756Z","chargedEvents": {"product": 1,"product-details": 1,"product-sellers": 1},"extrasCopiedFromEarlierRow": false}}
Explanation rows
When something stops a keyword or product from returning data, you get one row that says what happened and what to do. These rows are never charged.
error.type | status | Meaning |
|---|---|---|
INVALID_INPUT | error | Something in the input needs fixing; the message says what |
NO_RESULTS | no_data | Google Shopping showed no products for this keyword, or only products whose titles share no word with it (for example a misspelled keyword; common words such as "new", "best" or "sale" do not count). These products are not returned or charged |
PRODUCT_NOT_FOUND | no_data | The product ID returned nothing; search the product again by keyword |
TIMEOUT | error | Google Shopping did not answer in time; try again |
SOURCE_UNAVAILABLE | error | The data source was temporarily unavailable; try again in a few minutes |
MAX_CHARGE_REACHED | error | Your maximum cost per run was reached; raise it to get the remaining results |
FREE_PLAN_LIMIT | no_data | The free-plan limit was reached (see below) |
Runs that end this way still finish with status SUCCEEDED, and the run's status message repeats the explanation.
Run summary and live progress
Each run saves a RUN_SUMMARY record in its key-value store with the number of product and explanation rows, the events charged and how the run ended. While a run is active, its Live view tab shows a progress page (keywords and product IDs done, rows delivered).
๐ฐ Pricing
Pay-per-event model on Apify. You pay only for products delivered and the extras you switch on. Searches that return no products are free.
| Event | Price | Charged when |
|---|---|---|
apify-actor-start | $0.02 per run | Every run (Apify's built-in start event) |
product | $2.50 per 1,000 | Each product row delivered |
product-details | $6.00 per 1,000 | Each product with details loaded (includeDetails=true, or always in product-ID mode) |
product-sellers | $8.00 per 1,000 | Each block of up to 10 store offers delivered for a product |
Worked examples
| Scenario | Calculation | Total |
|---|---|---|
| 5 keywords, 40 products each, no extras | $0.02 + 200 x $0.0025 | $0.52 |
| Same, with store offers (up to 10 per product) | $0.52 + 200 x $0.008 | $2.12 |
| 1 keyword, all 120 products, with details | $0.02 + 120 x ($0.0025 + $0.006) | $1.04 |
| Daily monitor: 20 product IDs with up to 10 store offers each | $0.02 + 20 x ($0.0025 + $0.006 + $0.008) | $0.35 per day (about $10.50 per month) |
Same monitor with maxSellers=30 and 25 stores found per product | $0.02 + 20 x ($0.0025 + $0.006 + 3 x $0.008) | $0.67 per day |
Never charged: explanation rows (no results, product not found, temporary errors, limits reached) have
"charged": falseand cost nothing.
Free plan limit
NOTE: Free Apify users receive up to 5 results per run. Upgrade to any paid Apify plan to remove this limit. This limit was set by the Actor developer, not by Apify.
Paid Apify plans: https://apify.com/pricing
When a free plan run hits the cap, the Actor finishes successfully (status SUCCEEDED) and the run's status message explains what happened. No error is raised, so the first 5 results are fully usable as normal. Keywords are searched first, then product IDs. A free plan run also stops after 3 keywords that return no products.
๐ Schedule and MCP Usage
Daily price monitor on a schedule. In Apify Console open Schedules, create a schedule with the cron expression 0 6 * * * (every day at 06:00) and your time zone, then add this Actor with the "daily price monitor" input above. Turn on compareWithPreviousRun so each run tells you what changed. Connect the dataset to a webhook, Google Sheets or your own system to get alerts when isNewLowest is true or priceChange is negative.
Use it from an AI assistant (MCP). This Actor can be called through Apify's MCP server, so AI assistants that support the Model Context Protocol can run it as a tool. Add Apify's MCP server to your assistant with your Apify API token, then ask in plain language, for example: "Check Google Shopping prices for 'sony wh-1000xm5' in the United Kingdom and show the three cheapest stores including shipping." The assistant fills the input, runs the Actor and reads the dataset. Normal pay-per-event pricing applies.
โ FAQ
Q: Is this legal? A: This Actor uses DataForSEO, an independent data provider that handles the underlying data collection from public Google Shopping result pages. Your downstream use of the data is your responsibility. See the full Terms of Service and the Actor-Specific Addendum below for details.
Q: Do I need an API key or any other account? A: No. You only need an Apify account.
Q: What about Google's anti-scraping enforcement? A: Google's Terms restrict automated access to its services. The data provider handles the data collection and bears the responsibility for its architecture's lawfulness. Your downstream use must comply with Google's Terms.
Q: What if Google sends a cease-and-desist? A: Notify UnseenUser within 48 hours via the Apify profile contact form (apify.com/UnseenUser) and cease using this Actor immediately.
Q: Can I use this data to train AI? A: Not without proper licensing. Product titles, descriptions and images are created by merchants and manufacturers, who retain copyright, and Google's Terms restrict reuse of content from its services. UnseenUser does not authorize AI training use.
Q: What about minors? A: This Actor returns product and store data, not data about individual users. It never returns reviewer names or review text. If personal data about any person ever appears in a field, you must not use it, and data about minors must be deleted. See the Addendum below.
Q: Why are some fields empty?
A: Google does not show every field for every product. originalPrice appears only when Google shows a previous price, and only on main results (not carousel cards). description appears on main results or when details are loaded. deliveryPrice, storesCount and ratings appear only when Google shows them. Empty means "not shown", never "zero". In store offers, an empty shipping can mean free shipping or that shipping was not shown; check offerDetails for the delivery text.
Q: Which countries are supported?
A: Any location Google Shopping supports. The country dropdown lists common markets, and you can type any other supported location name. Use location for a city or region in the "City,Region,Country" format. Set language to match the market (for example de for Germany) for the most natural results. ZIP and postal codes are not supported, so they are not an input. If a location or language is not accepted, you get an INVALID_INPUT row telling you which fields to check.
Q: Why can't I get barcodes (GTIN, UPC, EAN)?
A: Google Shopping does not expose them in the data this Actor receives, in search results, product details or store offers. Use productId together with dataDocid and gid to identify products between runs instead.
Q: Why are there no filters for condition, on-sale or free shipping?
A: Google Shopping search, as this Actor receives it, does not accept them as search settings. Filtering after the fact would mean paying for rows you then throw away, so this Actor only offers filters Google applies itself: price range and sort order. Each store offer still includes its condition and availability, so you can filter those yourself after the run.
Q: Why does each search take about a minute? A: Each search's results take about a minute to come back. Searches run in parallel, so a larger run takes only a few minutes more than a single search.
Q: How do I monitor the same products every day?
A: Run a keyword search once, copy the productId, dataDocid and gid of the products you care about (or paste the whole rows) into productIds, turn on compareWithPreviousRun, and schedule the run. Note that Google can change product IDs over time; if a lookup stops returning data, find the product again with a keyword search.
Q: Something failed and the message asks me to open an issue. What should I send? A: Open an issue in this Actor's Issues tab with the run ID and the error type shown in the message. That is all we need to look into it.
Q: Is there a Google Shopping API? A: Google does not offer a public API for Google Shopping search results. Its merchant APIs only manage your own product listings, not what other stores charge. This Actor works as a Google Shopping API: start it from the Apify API, a schedule or an integration, and read the results as JSON, CSV or Excel.
Q: How do I track Google Shopping prices over time?
A: Run a keyword search once, keep the productId, dataDocid and gid of the products you care about, and put them in productIds with compareWithPreviousRun on. Schedule the run daily. Each row then shows previousPrice, priceChange and isNewLowest, so this works as a Google Shopping price tracker without any extra tools.
Q: Can it find the lowest price for a product across stores?
A: Yes. Turn on includeSellers and every row gets lowestTotalPrice and lowestTotalPriceSeller: the cheapest offer once shipping and tax are included, not just the cheapest headline price.
Q: Can I use it as a competitor price tracking or MAP monitoring tool? A: Yes. Track your own products by ID with store offers on, and each run lists every store's base price, shipping, total, condition and offer link. Check any price below your minimum advertised price on the store's own site before you act on it (see the Addendum below).
Q: Can I search by barcode (GTIN, UPC or EAN)?
A: No. Google Shopping treats a number typed into the search as ordinary text, so a barcode search returns loosely related products, not an exact match. Search by product keyword, or use productIds from an earlier run for exact repeat lookups.
Q: Is there a limit on the free Apify plan? A: NOTE: Free Apify users receive up to 5 results per run. Upgrade to any paid Apify plan to remove this limit. This limit was set by the Actor developer, not by Apify.
Q: How is this different from Google's own "Track price" button? A: Google's Track price is built for shoppers: you follow one product at a time in your own Google account and get a notification when it drops. This Actor is built for businesses: it tracks many products in one run, lists every store's offer with shipping, tax and total price, keeps the price history in your own Apify account, and delivers rows you can export to CSV, Excel or JSON or read through the API.
Q: Does the price include shipping and tax?
A: With includeSellers on, each store offer has basePrice, shipping, tax and totalPrice, and the row shows the cheapest totalPrice in lowestTotalPrice. Tax appears only when Google shows it for the selected location; for many US stores it is empty. An empty shipping can mean free shipping or that shipping was not shown, so check offerDetails for the delivery text.
Q: How often should I track competitor prices? A: As often as you schedule it: hourly, daily or weekly. Each run takes about a minute per search.
Q: Can I get an alert when a competitor drops their price?
A: The Actor does not send messages itself. Each row carries priceChange and isNewLowest, so connect the run to an Apify integration or webhook (for example Slack, email, Google Sheets, Zapier or Make) and act on those fields. The integrations video below shows how.
Q: Can I call it from Python? A: Yes, through the Apify API client for Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("unseenuser/google-shopping-scraper").call(run_input={"queries": ["sony wh-1000xm5"],"country": "United States","includeSellers": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item.get("status") == "ok":print(item["title"], item["price"], item["lowestTotalPrice"])
Q: Is there a free Google Shopping scraper or competitor price tracking tool? A: You can try this Actor on the free Apify plan, where free users receive up to 5 results per run. After that you pay per result: $0.02 per run plus $2.50 per 1,000 products, with no monthly fee for the Actor itself. Searches with no matching products are free.
Q: What is the best software for competitor price tracking? A: It depends on how you want to work. All-in-one price monitoring platforms match your catalog to competitor pages and show dashboards, usually for a monthly subscription. This Actor is the data side of that job for Google Shopping: you choose the products, it returns every store's price, shipping and total on a schedule, and you send the rows to your own spreadsheet, BI tool or repricing script. You pay only for the rows you get.
๐ฌ Demo videos
Track prices every day without lifting a finger: schedule this Actor to run automatically.
Send each price update straight to Google Sheets, Slack or your own system: connect this Actor to your stack.
๐ Related Actors
- Keyword search volume scraper - check how many people search for a product before you add it to your price tracking list
- AI answer extractor - see which products and stores AI assistants mention for the same shopping questions
- Google Ads scraper - see the Google ads your competitors run, by advertiser
- TikTok Shop product reviews scraper - export ratings, review text and verified-purchase flags for TikTok Shop products
๐ง Technical Details
- Output: streamed via Apify dataset, with Overview, Store offers and Errors and notices views
- Format: JSON, CSV, XLSX, or via Apify API
- Retries: temporary errors are retried automatically before a row is marked as unavailable
- Speed: about 1 minute per search; searches run in parallel
- Memory: 256 MB
Apify Actor - Terms of Service
Version: 4.0 Effective Date: May 5, 2026
0. ACCEPTANCE BY USE - IMPORTANT
Read this section first.
These Terms of Service ("Terms") form a binding legal agreement between you ("User," "you," "your") and UnseenUser, the Publisher of this Apify actor ("UnseenUser," "the Publisher," "we," "us," "our").
0.1 How You Accept These Terms
You accept these Terms by any of the following actions, each of which constitutes a clear, affirmative act of acceptance:
- (a) Running the Actor - Initiating any execution of the Actor on the Apify platform
- (b) Using any output returned by the Actor for any purpose
- (c) Continuing to access the Actor's listing or documentation after these Terms are visible
0.2 Continuing Acceptance
Each time you run the Actor or use its outputs, you reaffirm your acceptance of the then-current Terms. If you do not agree to these Terms or any subsequent update, you must stop using the Actor immediately.
0.3 No Anonymous Acceptance
You cannot disclaim acceptance by:
- Failing to read these Terms before running the Actor
- Running the Actor through automated systems
- Sharing your Apify account with others who may not have read these Terms
By the act of running the Actor on Apify, you bind yourself, your organization (if applicable), and any individuals or systems acting on your behalf or under your authority.
0.4 If You Do Not Accept
If you do not agree to these Terms, you must not run the Actor. No use is authorized without acceptance.
PREAMBLE - UNDERSTANDING THE ARCHITECTURE
Before using the Actor, please understand the technical architecture of the service:
The Data Flow
You (User) โ Apify Platform โ Actor (software) โ Third-Party API โ Source PlatformโYou (User) โ Apify Platform โ Actor (software) โ Third-Party API
What Each Party Does
- You (the User): Run the Actor on the Apify platform with input parameters you choose
- Apify: Operates the cloud infrastructure that hosts and executes Actors. Apify is a Czech-incorporated company (Apify Technologies s.r.o.) governed by its own Terms of Service.
- The Publisher (us): Publishes software code (the Actor) on Apify's platform. The Actor is a thin wrapper that translates your input into requests to a third-party API and returns the API's responses to you. The Publisher does not operate scraping infrastructure. The Publisher does not store or retain data returned by the Actor. The Publisher does not see, log, or process the personal data of any individuals returned in the Actor's outputs beyond what is incidental to passing the data through.
- Third-Party API Provider: DataForSEO (https://dataforseo.com). This is an independent third-party company that operates data infrastructure that retrieves public search engine result pages and returns them as structured data.
- Source Platform: Google (public search result pages). This is the platform whose publicly visible data is accessed by the Third-Party API Provider.
Why This Matters
Your relationship with the Publisher is that of a software user to a software vendor. The Publisher has the responsibilities of a software vendor (functional code, accurate documentation) and the limits of one (the Publisher is not responsible for how you use the data you obtain).
These Terms operate alongside but do not replace:
- Apify's Terms of Service and Acceptable Use Policy (governing your relationship with Apify)
- DataForSEO's Terms of Service (governing the underlying data infrastructure)
- Source Platform terms (Google) governing the public data accessed
- Applicable law in your jurisdiction and the jurisdictions of data subjects
These Terms incorporate the actor-specific addendum published in each Actor's individual listing ("Addendum"). In the event of a conflict, the more restrictive provision applies.
1. NATURE OF THE SERVICE
1.1 What the Actor Is
The Actor is a software program published on the Apify platform. Each Actor:
- (a) Accepts structured input from you on the Apify platform
- (b) Translates that input into HTTP requests to a third-party API operated by DataForSEO
- (c) Receives HTTP responses from that third-party API
- (d) Returns the response data to you in a structured format on the Apify platform
The Actor's source code is hosted on Apify's infrastructure. The Actor runs in Apify's cloud, not on the Publisher's servers. The Publisher operates no servers running the Actor.
1.2 What the Actor Is Not
The Actor is not:
- (a) A scraping tool - the Publisher does not operate scraping infrastructure, proxies, headless browsers, or fake accounts
- (b) A direct connection to any source platform - connections to source platforms are made by DataForSEO
- (c) A data storage or data retention service - the Publisher does not maintain a database of any data the Actor returns
- (d) A licensed access channel to Google (public search result pages) or any other source platform
- (e) Affiliated with, endorsed by, sponsored by, or authorized by any source platform
1.3 The Publisher's Limited Role
The Publisher's role is limited to:
- (a) Designing and writing the Actor's source code
- (b) Publishing the Actor on the Apify Store
- (c) Maintaining the Actor (updating it when API providers change schemas)
- (d) Providing documentation and customer support via Apify's contact mechanism
The Publisher is a software vendor, similar to a developer who publishes an app on the Apple App Store or Google Play Store. The Publisher is not a data provider, data broker, data processor, or data controller for purposes of GDPR, CCPA, Israel's Privacy Protection Law, or equivalent.
1.4 The Third-Party API Provider's Role
DataForSEO (https://dataforseo.com) is an independent third-party company. It:
- (a) Operates the actual data infrastructure that retrieves public search engine result pages
- (b) Maintains relationships with source platforms (or accepts the operational risk of accessing public data without such relationships)
- (c) Provides its own Terms of Service governing its operations
- (d) Is responsible for compliance obligations relating to the data collection itself
The Publisher is a customer of this provider. The Publisher is not its agent, partner, or representative.
2. WHO MAY USE THE ACTOR
2.1 Eligibility
You may use the Actor only if:
- (a) You are at least 18 years old or the age of majority in your jurisdiction
- (b) You have legal capacity to enter into binding contracts
- (c) You are not located in or resident of a country subject to comprehensive sanctions by the United States, European Union, United Kingdom, or Israel
- (d) You are not on any prohibited persons list
2.2 User Representations
By using any Actor, you represent and warrant that:
- (a) Truthful identity: Information you provide about your identity and intended use is accurate
- (b) Lawful intent: Your intended use complies with applicable law in your jurisdiction
- (c) Source platform compliance: You will independently comply with the Terms of Service of any source platform whose data you obtain through the Actor
- (d) Data subject rights: Where Actor outputs include personal data, you will respect data subject rights under applicable law
- (e) No prohibited use: You will not use the Actor for any of the purposes prohibited in Section 4
These representations are continuous - they must remain true throughout your use.
3. PERMITTED USES
The Actor may be used for any lawful purpose, including:
- Market research and competitive analysis
- Academic research
- Journalism and investigative reporting
- Internal business intelligence
- Brand monitoring
- Recruitment research where consistent with applicable employment law
- Building products that further process publicly available information lawfully
Specific permitted uses for each Actor are described in that Actor's individual listing and Addendum.
4. PROHIBITED USES
You may not use the Actor for any of the following:
4.1 Illegal Activity
Activity illegal under the law of your jurisdiction, the User's jurisdiction, or the jurisdiction of any data subjects.
4.2 Harassment, Stalking, and Personal Targeting
- Compiling profiles for harassment, stalking, or doxxing
- Tracking individuals' movements or activities without their knowledge
- Building profiles of journalists, activists, dissidents, or vulnerable populations for retaliatory purposes
4.3 Discrimination
- Using outputs for discriminatory employment, lending, housing, or insurance decisions based on protected characteristics
- Building lists for discriminatory purposes
4.4 Spam and Unsolicited Commercial Communication
- Sending unsolicited marketing in violation of CAN-SPAM, CASL, GDPR, PECR, Israeli Anti-Spam Law (ืกืขืืฃ 30ื ืืืืง ืืชืงืฉืืจืช), or equivalent laws
- Building "lead lists" from scraped contacts without proper consent infrastructure
- Reselling contact data for spam purposes
4.5 Fraud and Deception
- Identity theft or impersonation
- Generation of fake reviews, testimonials, or coordinated inauthentic behavior
- Election interference or political disinformation
- Securities fraud
4.6 Source Platform Abuse
- Using outputs to circumvent technical protection measures of source platforms
- Creating fake accounts on source platforms based on Actor outputs
- Vote manipulation, engagement manipulation, or platform algorithm gaming
- Building services that competitively substitute for source platforms
4.7 Reselling the Actor's Service
- Reselling raw Actor outputs as your own data product or scraping-as-a-service
- Sharing your Apify credentials to provide third parties indirect access
- Building competing API services using Actor outputs
4.8 AI Training Without Authorization
- Using Actor outputs as training data for commercial AI/ML models without separate licensing authority from the source platform
4.9 Sensitive Targeting
- Specifically targeting or profiling based on health conditions, sexual orientation, religious beliefs, political opinions, or other sensitive characteristics
- Targeting children under 16 (or local age of consent for data processing)
4.10 Privacy Law Violations
- Processing personal data of EU/UK/California/Israeli residents without complying with applicable privacy law
- Failing to honor data subject access, deletion, or objection requests
- Processing data for purposes incompatible with its publication context
5. SOURCE PLATFORM TERMS - YOUR RESPONSIBILITY
5.1 Acknowledgment
The Actor accesses publicly visible data on third-party platforms ("Source Platforms") through the Third-Party API Provider (DataForSEO). Source Platforms include Google (public search result pages).
5.2 Your Sole Responsibility
You acknowledge:
- (a) You are solely responsible for ensuring your downstream use of data obtained through the Actor complies with the Source Platform's Terms of Service
- (b) The Publisher makes no representation that any specific use is permitted under any Source Platform's terms
- (c) The Third-Party API Provider, not the Publisher, bears responsibility for the lawfulness of the data collection itself
- (d) You should review Source Platform terms before commercial use:
- Google: https://policies.google.com/terms
- DataForSEO: https://dataforseo.com/terms-of-service
5.3 Cease-and-Desist Compliance
If you receive a cease-and-desist letter or other legal demand from a Source Platform regarding your use of Actor outputs, you must:
- (a) Cease the contested use immediately
- (b) Notify UnseenUser within 48 hours via UnseenUser's Apify profile contact form (https://apify.com/UnseenUser)
- (c) Cooperate with the Publisher as needed to mitigate
- (d) Not assert against the Publisher any claim arising from your inability to use the Actor for that Source Platform
6. DATA PROTECTION - REFLECTING ACTUAL ARCHITECTURE
6.1 Roles Under Privacy Law
For purposes of GDPR, UK GDPR, CCPA, Israel's Privacy Protection Law (PPL) including Amendment 13, and equivalents:
- You (the User) are the Data Controller of any personal data you obtain through the Actor and subsequently process for your own purposes
- DataForSEO is the entity that collects data from the source platform - it bears the responsibilities of a data processor or controller (depending on context) for the collection itself
- The Publisher acts solely as a software vendor, not as a data controller or processor, because the Publisher does not store, retain, or substantively process personal data - the Actor merely passes API responses through
6.2 No Data Retention by the Publisher
The Publisher confirms:
- (a) The Publisher does not maintain a database of personal data obtained through the Actor
- (b) The Actor passes data from the Third-Party API directly to you on the Apify platform - data does not flow through the Publisher's infrastructure
- (c) Apify's standard execution and operational logging may include limited information about Actor runs (input parameters, run duration, data volume) - this is governed by Apify's own privacy practices
- (d) The Publisher does not access, view, or analyze your Actor outputs except as needed for technical support if you specifically share them with the Publisher
6.3 Your Obligations as Data Controller
Where your use of the Actor involves processing personal data, you are responsible for:
- (a) Establishing a lawful basis for your processing (consent, legitimate interest with documented balancing test, contract, etc.)
- (b) Providing transparent notice to data subjects as required by applicable law
- (c) Honoring data subject access, rectification, erasure, restriction, and portability requests
- (d) Implementing appropriate security measures
- (e) Conducting Data Protection Impact Assessments where required
- (f) Appointing a Data Protection Officer if your operations require one
- (g) Registering databases with applicable supervisory authorities
- (h) Honoring opt-out requests for direct marketing
- (i) Cross-border transfer safeguards where data crosses borders
6.4 Israel's Amendment 13 - User Compliance
If your use of the Actor involves Israeli residents' personal data, you must comply with the Privacy Protection Law as amended (Amendment 13, effective August 14, 2025). These obligations are yours as the data controller, not the Publisher's as the software vendor.
6.5 Sensitive Data Targeting Restrictions
You will not use the Actor to specifically target, profile, or build datasets focused on:
- Health or medical conditions
- Religious beliefs
- Political opinions
- Sexual orientation or gender identity
- Genetic or biometric data
- Criminal history
- Children under 16
7. INTELLECTUAL PROPERTY
7.1 Actor Code
The Actor's source code, schemas, documentation, and branding are owned by the Publisher. You receive a limited, non-exclusive, non-transferable, revocable license to use the Actor for permitted purposes during your active subscription/run with Apify.
7.2 Output Data
The Publisher claims no ownership over the public data the Actor returns. Source Platforms may have copyright, database rights, or other rights in their data; data subjects may have copyright in user-generated content. Your use of output data must respect these rights independently.
7.3 Restrictions
You may not reverse engineer, decompile, or reuse the Actor's code in a competing actor.
7.4 Feedback
Feedback you provide may be used by the Publisher to improve products without compensation to you.
8. PRICING AND PAYMENT
8.1 Apify Platform Billing
Pricing is administered through Apify's pricing models. Apify processes all payments. Apify's payment terms govern refunds and disputes.
8.2 Pricing Changes
The Publisher may change Actor pricing with at least 14 days' notice via the Actor's Apify listing.
8.3 No Refunds for Misuse
If your access is suspended or terminated for breach of these Terms, you forfeit any unused balance and are not entitled to refunds.
9. SERVICE AVAILABILITY AND CHANGES
9.1 No Uptime Guarantee
The Actor depends on:
- (a) The Apify platform
- (b) The underlying API provider (DataForSEO)
- (c) Source Platforms' continued public accessibility
Any of these may change behavior, restrict access, or become unavailable without notice. The Publisher makes no uptime guarantees.
9.2 Service Discontinuation
The Publisher may discontinue any Actor at any time. Reasonable notice will be provided when feasible.
10. DISCLAIMERS
10.1 "AS IS" Service
THE ACTOR IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR PURPOSE, NON-INFRINGEMENT, OR ACCURACY OF DATA.
10.2 No Representation of Lawfulness
The Publisher makes no representation that your specific use of the Actor or the data it returns is lawful in your jurisdiction or under any Source Platform's terms. The burden of determining lawfulness for your use case is yours.
10.3 No Endorsement of Source Content
Content returned by the Actor was created by third parties. The Publisher does not endorse, verify, or take responsibility for it.
11. LIMITATION OF LIABILITY
11.1 Aggregate Liability Cap
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL THE AGGREGATE LIABILITY OF THE PUBLISHER FOR ALL CLAIMS RELATING TO THE ACTOR EXCEED THE GREATER OF:
- (a) ONE HUNDRED U.S. DOLLARS (US $100), OR
- (b) THE AMOUNTS YOU PAID THROUGH APIFY FOR USE OF THE ACTOR IN THE THREE (3) MONTHS IMMEDIATELY PRECEDING THE EVENT
11.2 Excluded Damages
THE PUBLISHER IS NOT LIABLE FOR INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR FOR LOSS OF PROFITS, REVENUE, OR DATA, EVEN IF ADVISED OF THE POSSIBILITY.
11.3 Time Limit
Any claim must be brought within one (1) year of the event.
12. INDEMNIFICATION
12.1 Your Indemnification of the Publisher
You agree to defend, indemnify, and hold harmless the Publisher from any:
- Claims arising from your use of the Actor
- Claims arising from your violation of these Terms
- Claims arising from your violation of any law (including privacy law)
- Claims arising from your violation of any Source Platform's Terms of Service
- Claims arising from your processing of personal data obtained through the Actor
- Reasonable attorneys' fees and costs of defending such claims
12.2 Defense
The Publisher may assume defense at your expense. You will cooperate with the Publisher's defense.
12.3 Scope
The indemnification covers reasonable, foreseeable third-party claims arising from your use. It does not extend to:
- Claims arising from the Publisher's gross negligence or willful misconduct
- Claims regarding the Actor's source code itself (those are the Publisher's responsibility)
- Claims regarding the Third-Party API Provider's data collection (those are their responsibility)
13. SUSPENSION AND TERMINATION
13.1 Termination by the Publisher
The Publisher may terminate your access for material breach, illegal use, breach of warranty, or upon credible legal demand.
13.2 Effects of Termination
Your license ends, you must cease use, and applicable provisions survive.
13.3 Termination by You
You may stop using the Actor at any time on Apify.
14. DISPUTE RESOLUTION
14.1 Informal Resolution First
Send a detailed written description of the dispute via UnseenUser's Apify profile contact form (https://apify.com/UnseenUser) and wait 60 days for resolution attempt before any formal claim.
14.2 Governing Law
These Terms are governed by the substantive laws of the State of Israel, without regard to conflict of law principles.
14.3 Exclusive Jurisdiction
Any dispute shall be brought exclusively in the competent civil courts of Tel Aviv-Jaffa, Israel.
14.4 No Class Actions
You agree to bring claims only in your individual capacity.
14.5 Attorneys' Fees
The prevailing party recovers reasonable attorneys' fees.
15. MISCELLANEOUS
15.1 Entire Agreement
These Terms (with Addendum and incorporated documents) are the entire agreement.
15.2 Severability
Unenforceable provisions are reformed to the minimum extent or severed.
15.3 Assignment
You may not assign without the Publisher's consent. The Publisher may assign to affiliates, successors, or acquirers.
15.4 Force Majeure
Neither party is liable for failure due to events beyond reasonable control, including changes by Source Platforms or the Third-Party API Provider, or actions by Apify.
15.5 Third-Party Beneficiaries
Apify and DataForSEO are intended third-party beneficiaries of Sections 4 (Prohibited Uses), 5 (Source Platform Compliance), and 12 (Indemnification).
15.6 Survival
Sections 0 (Acceptance), 4, 5, 6, 7, 10, 11, 12, 14, and 15 survive termination.
15.7 Language
English controls. Translations are for convenience only.
15.8 Publisher Identification for Legal Process
The Publisher operates on the Apify platform under the username UnseenUser (apify.com/UnseenUser). The Publisher is a registered legal entity. Upon receipt of valid legal process (subpoena, court order, or equivalent) directed through Apify's official channels, the Publisher's full legal identity may be disclosed as required by law. This Section ensures that you have a valid path to legal recourse if needed.
16. ACKNOWLEDGMENT
By using any Actor, you acknowledge that:
- (a) You have read these Terms
- (b) You understand the architecture: you are using software (the Actor) on Apify's platform that calls third-party APIs
- (c) You accept responsibility for your use, including for compliance with Source Platform terms
- (d) Your indemnification obligations cover third-party claims arising from your use
- (e) Disputes are resolved in Israeli courts
- (f) The Publisher's identity, while not publicly disclosed in this listing, can be obtained through valid legal process via Apify
For questions, use UnseenUser's Apify profile contact form (https://apify.com/UnseenUser) before running the Actor.
APPENDIX - Document Version History
| Version | Date | Summary |
|---|---|---|
| 1.0 | May 5, 2026 | Initial publication |
| 2.0 | May 5, 2026 | Hardened (over-broad - treated User as data broker) |
| 3.0 | May 5, 2026 | Architecturally accurate - Publisher as software vendor |
| 4.0 | May 5, 2026 | Anonymous Publisher. All personally identifying information removed. Acceptance-by-Use mechanism formalized. |
Provider adaptation for this Actor: DataForSEO / Google (public search result pages).
These Terms reflect best practices for anonymous Apify actor publishing as of May 2026. Not a substitute for legal advice. Consult qualified Israeli commercial counsel before deploying.
๐ก๏ธ Actor-Specific Terms of Service Addendum
๐ก๏ธ Actor-Specific ToS Addendum - ๐ Google Shopping Scraper - Prices, All Sellers & Shipping
This addendum supplements the Master Terms of Service V4.0. By running this Actor, you accept both the Master ToS and this addendum.
A. Architectural Disclosure
This Actor is a software wrapper. It accepts your input parameters, requests three kinds of data from the Third-Party API Provider named in the Master ToS (DataForSEO): Google Shopping search results, product details, and store offers for a product. It combines the results into one structured row per product and returns the data to you on the Apify platform. UnseenUser does not store, log, or substantively process the data returned. The data flows from the Third-Party API Provider through Apify's runtime directly to you. The optional price history (compareWithPreviousRun) is saved in a named key-value store inside your own Apify account, never in an account of UnseenUser.
B. Nature of Data Returned
This Actor returns: product listings as shown on public Google Shopping result pages (title, short description, price, previous price, currency, merchant name, Google Shopping product URL, image URLs, product rating value and review count, delivery message and price, number of stores, tags, special-offer and coupon text); optionally product details (description, feature snippets, specifications, product variations, images); and optionally store offers per product (store name, store domain, offer link, base price, tax, shipping, total price, condition, availability, badge text, store rating value and rating count). It does NOT return barcodes (GTIN/UPC/EAN), reviewer names, review text, buyer data, or any account data. Tax amounts are what Google shows for the selected location.
Where the Actor's output includes individual people's names, photos, contact details, or content authored by them, that data constitutes personal data subject to GDPR, CCPA, Israeli Privacy Protection Law (including Amendment 13), and equivalent privacy laws in your downstream processing - but only in your hands as the data controller, not in UnseenUser's hands as the software vendor.
C. Permitted Use Cases
You may use this Actor for the following purposes (non-exhaustive list):
- Competitor price monitoring - track what rival stores charge for the same product, every day, with shipping and tax included
- MAP compliance checks - spot stores advertising below your minimum advertised price, with the store name, domain and offer link as evidence
- Lowest-total-price finder - compare base price, shipping and tax across up to 50 stores per product and get the cheapest total in one field
- Retail assortment research - see which products, brands and price points rank on Google Shopping for a category keyword in a given country
- Deal and discount tracking - capture old prices, discount percentages, coupon codes and "price drop" badges as they appear
- Marketplace seller discovery - find which stores and marketplaces carry a product, with their ratings and availability
D. Specifically Prohibited Uses
In addition to Master ToS Section 4 prohibitions, you may NOT:
- Resell the raw dataset (product lists, store offers, price histories) as a data product
- Build a public price-comparison site or app that copies Google Shopping listings, images or descriptions
- Use the data for price-fixing or to coordinate prices with competitors (see Section J)
- Republish merchant or manufacturer images, descriptions or specifications without permission (see Section G)
- Create fake listings, fake reviews, fake ratings or misleading "lowest price" claims based on the data
- Harass, threaten or pressure resellers, including through automated MAP warning campaigns that go beyond lawful enforcement of your own agreements
- Profile individual sellers who are private persons (see Section I)
- Use the data to contact or market to sellers who are private persons
- Use the data for any product or service aimed at minors, or keep any data about a minor if such data ever appears (this Actor is not designed to return data about individuals)
E. Platform Terms of Service Considerations
Google's Terms of Service restrict automated access to its services and reuse of content shown in them. Google has actively litigated against search result scraping: on December 19, 2025, Google sued SerpApi, a search-results API company, in the U.S. District Court for the Northern District of California, alleging circumvention of its anti-scraping protections under the DMCA (17 U.S.C. ยง 1201). In July 2026 the court granted SerpApi's motion to dismiss: claims over factual search data (URLs, snippets, index data) were dismissed without leave to amend, because that data is not a copyrighted work; claims over third-party content were dismissed with leave to amend. Google filed an amended complaint in August 2026 and SerpApi moved to dismiss it again, so the case is still ongoing. This summary reflects public reporting as of late August 2026; check for later developments. The case shows that Google treats large-scale extraction of its results as a legal matter.
This Actor accesses publicly visible Google Shopping data via the Third-Party API Provider, which bears responsibility for the lawfulness of the data collection. Your downstream use must independently comply with Google's Terms of Service (https://policies.google.com/terms).
If Google issues a cease-and-desist regarding data obtained via this Actor, notify UnseenUser within 48 hours via the Apify profile contact form (apify.com/UnseenUser) and cease your use immediately.
F. Combined-Endpoint Data Sensitivity
This Actor combines three kinds of data in one run. The combination is MORE commercially sensitive than any part alone:
- Search results alone: a snapshot of which products rank for a keyword (low sensitivity, visible to anyone who searches)
- Product details alone: merchant and manufacturer content for one product (copyright-sensitive, see Section G)
- Store offers alone: who sells one product and at what total price (commercially sensitive for those stores)
- Combined, and repeated on a schedule: a structured, continuously updated map of a market, with prices, stores, discounts and availability over time
This combined view is valuable for your own pricing and research, and it is exactly the kind of dataset a platform treats as a substitute for its own service. Use the combined output thoughtfully:
- Don't sell the combined dataset, or price histories built from it, as a product
- Don't build a "Google Shopping replacement" or a public mirror of Google Shopping with this data
- Use it for your own internal pricing, research and monitoring
G. Merchant and Manufacturer Content Copyright, plus AI Training
Product titles, descriptions, feature snippets, specifications and images are created by merchants, manufacturers and brands, who retain copyright and, for logos and brand names, trademark rights. Google displays this content; Google's display does not transfer any rights to you. You may:
- Analyze the content (for example price, assortment or keyword research)
- Quote short excerpts with attribution where your local law allows it
- Use facts such as prices, store names, availability and counts (facts are generally not copyrightable)
You may NOT:
- Republish product images or descriptions in your own catalog, site, ads or marketplace listings without the rights holder's permission
- Strip or alter brand names or attribution to pass content off as your own
- Imply affiliation with Google, Google Shopping, or any brand shown in the data
AI Training - Special Notice: Google's Terms of Service restrict reuse of content from its services, and merchants and brands own the content shown. The Publisher (UnseenUser) does NOT authorize, and has no ability to authorize, using this Actor's output to train AI or machine-learning models. Recent litigation (NYT v. OpenAI, Andersen v. Stability AI, and others) shows that AI training on third-party content is contested. Get proper licensing or do not train on this data. Your AI training use is your own legal exposure.
H. Price Accuracy - Point-in-Time, Not Authoritative
Prices, tax, shipping, availability and discounts change frequently and depend on the location, language and time of the request. The values this Actor returns are a snapshot of what Google Shopping showed for the selected location at the time of the run:
- Tax and total price are Google's figures for the selected location, not a binding quote from the store
- An empty shipping value can mean free shipping or that shipping was not shown
- Store offer links may be Google redirect links, and a store's own page can show a different price
- Google may change product IDs over time, so the same product can need a new keyword search
Before any legal, contractual or enforcement action (for example a MAP violation notice, a price-match claim, or a dispute), verify the price directly on the store's own website and keep your own dated evidence. Do not represent this Actor's output as an authoritative or certified price record. UnseenUser makes no warranty of accuracy (Terms of Service Section 10).
I. Store Data - Business Data with Personal-Data Edge Cases
Store names, domains, ratings and offers are generally business data about companies. However, some sellers are individuals: sole traders, small home businesses, and marketplace sellers who sell under their own name. For those sellers, the store name and any linked page can identify a natural person, and personal-data law applies in your hands as the data controller:
- Treat a seller that appears to be a private person (a personal name rather than a business name, or a personal marketplace account) as personal data
- Do not build profiles of such sellers, track them across products or platforms, or combine their data with other personal data
- Do not contact or market to them based on this data (see Section D); in Israel, the EU and many other jurisdictions marketing contact requires prior consent
- If such a person asks you to delete data about them, honor the request promptly (typically within 30 days under GDPR) and do not route them to UnseenUser, which is the software vendor, not the data controller
J. Competition Law and Price Coordination
Monitoring competitors' public prices to set your own prices independently is a normal, lawful business practice in most jurisdictions. Using the same data to coordinate prices is not. You may NOT use this Actor's output to:
- Agree, signal or coordinate prices, discounts or shipping fees with competitors (price-fixing is illegal under the US Sherman Act, EU Article 101 TFEU, the Israeli Economic Competition Law, and equivalent laws)
- Run automated pricing systems designed to align prices among competitors, or share the monitored data with competitors for that purpose
- Enforce resale prices on independent resellers where resale price maintenance is unlawful in that jurisdiction
MAP monitoring: checking advertised prices against your own minimum advertised price policy is generally permitted, but the legality of MAP and resale price policies varies by country. Enforce only agreements you actually have, through lawful channels, and get advice from qualified competition counsel before acting on MAP findings in a new market.
| Use | Status |
|---|---|
| Track competitor prices daily to set your own prices independently | โ Permitted |
| Check your resellers' advertised prices against your own MAP policy | โ Generally permitted where MAP is lawful; verify locally |
| Share monitored price data with a competitor | โ Competition-law risk |
| Use the data to agree or signal prices with competitors | โ Price-fixing, prohibited |
| Mass automated threats to resellers based on unverified snapshots | โ Prohibited (see Sections D and H) |
K. Price History - Stored in Your Account
When compareWithPreviousRun is enabled, the Actor saves the last tracked price, the lowest price seen, the currency and a timestamp per product and location in a named key-value store called google-shopping-price-history inside your own Apify account. UnseenUser has no access to it and keeps no copy. As the account owner:
- You decide how long to keep it; delete the store in Apify Console whenever you want to reset or remove the history
- You are responsible for any retention, deletion and confidentiality obligations that apply to it
- The store contains only product IDs, prices and dates, no personal data, unless you add your own
- Changing the location, language or
includeSellerssetting between runs changes what is compared; keep settings stable for meaningful comparisons