Google Shopping Price Comparison & Deal Finder
Search Google Shopping by keyword and collect product prices, discounts, merchant names, ratings, and delivery info across 48 countries for price monitoring and deal tracking.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | optional | What to collect: keyword search, product lookup by ID/viewer URL, deals, or a department category. |
queries | array | optional | Product keywords for search/deals mode. Ignored in product mode; optional in category mode. |
productIds | array | optional | Google Shopping catalog IDs, product IDs, product viewer URLs, or legacy /shopping/product/<id> URLs. Used in product mode. |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | optional | What to collect: keyword search, product lookup by ID/viewer URL, deals, or a department category. |
queries | array | optional | Product keywords for search/deals mode. Ignored in product mode; optional in category mode. |
productIds | array | optional | Google Shopping catalog IDs, product IDs, product viewer URLs, or legacy /shopping/product/<id> URLs. Used in product mode. |
category | string | optional | Google Shopping department for category mode. |
countryCode | string | optional | Country used for the Google domain, UULE location and price hint. The actual currency is always detected from the response, never relabelled. |
languageCode | string | optional | Interface and result language (hl parameter). |
sortBy | string | optional | Client-side sort of the collected rows. Google ignores server-side sort on this page. |
condition | string | optional | Condition hint sent to Google and verified when the result card shows a condition. |
minPrice | integer | optional | Minimum price in the detected local currency. Applied through a shoprs filter and verified on every output row. |
maxPrice | integer | optional | Maximum price in the detected local currency. Applied through a shoprs filter and verified on every output row. |
onSale | boolean | optional | Ask Google for discounted products and keep rows with an observed original price or discount. |
freeShipping | boolean | optional | Ask Google for free-shipping products and keep rows whose delivery text says free. |
minRating | string | optional | Minimum product rating (0-5). Applied through a shoprs rating chip and verified on every output row. |
store | string | optional | Optional store name to bias and verify, e.g. Best Buy or Amazon. |
maxResultsPerQuery | integer | optional | Maximum records per query (search/deals/category) or products (product mode). |
includePriceHistory | boolean | optional | Include per-seller daily price history when Google exposes it (product mode and search detail enrichment). |
includeProductDetails | boolean | optional | Fetch the product viewer for each search result to add brand, description, images, specifications and offers. Costs one extra request per result. |
Download the published input schema
View complete JSON
{
"description": "Search Google Shopping, look up products by ID, or browse deals and categories. Returns real product IDs, viewer URLs, seller offers with shipping and totals, price ranges and 12-month price history where Google exposes it.",
"properties": {
"category": {
"description": "Google Shopping department for category mode.",
"editor": "select",
"enum": [
"electronics",
"computers",
"cell-phones",
"audio",
"cameras",
"video-games",
"tv-home-theater",
"appliances",
"home-garden",
"clothing",
"shoes",
"beauty",
"sports-outdoors",
"toys-games",
"jewelry"
],
"enumTitles": [
"Electronics",
"Computers",
"Cell Phones",
"Audio",
"Cameras",
"Video Games",
"TV & Home Theater",
"Appliances",
"Home & Garden",
"Clothing",
"Shoes",
"Beauty",
"Sports & Outdoors",
"Toys & Games",
"Jewelry"
],
"title": "Category",
"type": "string"
},
"condition": {
"default": "",
"description": "Condition hint sent to Google and verified when the result card shows a condition.",
"editor": "select",
"enum": [
"",
"new",
"used",
"refurbished"
],
"enumTitles": [
"Any",
"New",
"Used",
"Refurbished"
],
"title": "Condition",
"type": "string"
},
"countryCode": {
"default": "us",
"description": "Country used for the Google domain, UULE location and price hint. The actual currency is always detected from the response, never relabelled.",
"editor": "select",
"enum": [
"us",
"uk",
"ca",
"au",
"de",
"fr",
"es",
"it",
"br",
"mx",
"in",
"jp",
"kr",
"nl",
"be",
"at",
"ch",
"se",
"no",
"dk",
"fi",
"pl",
"cz",
"pt",
"ie",
"nz",
"za",
"sg",
"hk",
"tw",
"ph",
"th",
"id",
"my",
"vn",
"ar",
"cl",
"co",
"pe",
"tr",
"ru",
"ua",
"il",
"ae",
"sa",
"eg",
"ng",
"ke"
],
"enumTitles": [
"United States",
"United Kingdom",
"Canada",
"Australia",
"Germany",
"France",
"Spain",
"Italy",
"Brazil",
"Mexico",
"India",
"Japan",
"South Korea",
"Netherlands",
"Belgium",
"Austria",
"Switzerland",
"Sweden",
"Norway",
"Denmark",
"Finland",
"Poland",
"Czech Republic",
"Portugal",
"Ireland",
"New Zealand",
"South Africa",
"Singapore",
"Hong Kong",
"Taiwan",
"Philippines",
"Thailand",
"Indonesia",
"Malaysia",
"Vietnam",
"Argentina",
"Chile",
"Colombia",
"Peru",
"Turkey",
"Russia",
"Ukraine",
"Israel",
"UAE",
"Saudi Arabia",
"Egypt",
"Nigeria",
"Kenya"
],
"prefill": "us",
"title": "Country",
"type": "string"
},
"freeShipping": {
"default": false,
"description": "Ask Google for free-shipping products and keep rows whose delivery text says free.",
"prefill": false,
"title": "Free Shipping Only",
"type": "boolean"
},
"includePriceHistory": {
"default": true,
"description": "Include per-seller daily price history when Google exposes it (product mode and search detail enrichment).",
"prefill": false,
"title": "Include 12-Month Price History",
"type": "boolean"
},
"includeProductDetails": {
"default": false,
"description": "Fetch the product viewer for each search result to add brand, description, images, specifications and offers. Costs one extra request per result.",
"prefill": false,
"title": "Enrich Search Results",
"type": "boolean"
},
"languageCode": {
"default": "en",
"description": "Interface and result language (hl parameter).",
"editor": "select",
"enum": [
"en",
"es",
"fr",
"de",
"it",
"pt",
"nl",
"pl",
"tr",
"ru",
"ja",
"ko",
"zh",
"ar",
"hi",
"th",
"vi",
"id",
"ms",
"sv",
"da",
"no",
"fi",
"cs",
"el",
"he",
"uk"
],
"enumTitles": [
"English",
"Spanish",
"French",
"German",
"Italian",
"Portuguese",
"Dutch",
"Polish",
"Turkish",
"Russian",
"Japanese",
"Korean",
"Chinese",
"Arabic",
"Hindi",
"Thai",
"Vietnamese",
"Indonesian",
"Malay",
"Swedish",
"Danish",
"Norwegian",
"Finnish",
"Czech",
"Greek",
"Hebrew",
"Ukrainian"
],
"prefill": "en",
"title": "Language",
"type": "string"
},
"maxPrice": {
"description": "Maximum price in the detected local currency. Applied through a shoprs filter and verified on every output row.",
"minimum": 0,
"title": "Maximum Price",
"type": "integer"
},
"maxResultsPerQuery": {
"default": 20,
"description": "Maximum records per query (search/deals/category) or products (product mode).",
"maximum": 200,
"minimum": 1,
"prefill": 1,
"title": "Max Results",
"type": "integer"
},
"minPrice": {
"description": "Minimum price in the detected local currency. Applied through a shoprs filter and verified on every output row.",
"minimum": 0,
"title": "Minimum Price",
"type": "integer"
},
"minRating": {
"default": "0",
"description": "Minimum product rating (0-5). Applied through a shoprs rating chip and verified on every output row.",
"editor": "select",
"enum": [
"0",
"1",
"2",
"3",
"4",
"5"
],
"enumTitles": [
"Any",
"1 and up",
"2 and up",
"3 and up",
"4 and up",
"5"
],
"title": "Minimum Rating",
"type": "string"
},
"mode": {
"default": "search",
"description": "What to collect: keyword search, product lookup by ID/viewer URL, deals, or a department category.",
"editor": "select",
"enum": [
"search",
"product",
"deals",
"category"
],
"enumTitles": [
"Keyword search",
"Product lookup (ID or URL)",
"Deals",
"Category browse"
],
"prefill": "search",
"title": "Mode",
"type": "string"
},
"onSale": {
"default": false,
"description": "Ask Google for discounted products and keep rows with an observed original price or discount.",
"prefill": false,
"title": "On Sale Only",
"type": "boolean"
},
"productIds": {
"description": "Google Shopping catalog IDs, product IDs, product viewer URLs, or legacy /shopping/product/<id> URLs. Used in product mode.",
"editor": "stringList",
"items": {
"type": "string"
},
"title": "Product IDs or Viewer URLs",
"type": "array"
},
"queries": {
"description": "Product keywords for search/deals mode. Ignored in product mode; optional in category mode.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [
"iPhone 15 Pro Max"
],
"title": "Search Queries",
"type": "array"
},
"sortBy": {
"default": "",
"description": "Client-side sort of the collected rows. Google ignores server-side sort on this page.",
"editor": "select",
"enum": [
"",
"review_score",
"price_low",
"price_high"
],
"enumTitles": [
"Relevance (default)",
"Rating high to low",
"Price low to high",
"Price high to low"
],
"title": "Sort By",
"type": "string"
},
"store": {
"description": "Optional store name to bias and verify, e.g. Best Buy or Amazon.",
"editor": "textfield",
"title": "Store",
"type": "string"
}
},
"schemaVersion": 1,
"title": "Google Shopping Price Comparison & Deal Finder",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
products | string | optional | Dataset containing search results, deals, category results and product records. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Product listings and product-viewer records with real product IDs, viewer URLs, seller offers, shipping and totals, price ranges, specifications and 12-month price history where Google exposes it.",
"properties": {
"products": {
"description": "Dataset containing search results, deals, category results and product records.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Shopping Products",
"type": "string"
}
},
"title": "Google Shopping Price Comparison & Deal Finder Output",
"type": "object"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"fields": {
"properties": {
"availability": {
"description": "Availability text.",
"type": "string"
},
"badge": {
"description": "Observed badge such as Best price or Low price.",
"type": "string"
},
"brand": {
"description": "Brand from the product viewer.",
"type": "string"
},
"catalogId": {
"description": "Real Google Shopping catalog ID from data-cid; used to build viewer URLs.",
"type": "string"
},
"condition": {
"description": "Condition when Google shows one.",
"type": "string"
},
"currency": {
"description": "Actual detected currency code. Never relabelled from the requested country.",
"type": "string"
},
"dealFlags": {
"description": "Observed deal signals.",
"properties": {
"bestPrice": {
"type": "boolean"
},
"onSale": {
"type": "boolean"
}
},
"type": "object"
},
"delivery": {
"description": "Delivery text.",
"type": "string"
},
"description": {
"description": "Product description from the viewer.",
"type": "string"
},
"discountPercent": {
"description": "Observed discount percentage.",
"type": "number"
},
"discussions": {
"description": "Forum/discussion links about the product (not product review text).",
"items": {
"properties": {
"source": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"hasMoreOffers": {
"description": "True when Google reports more seller offers than the five on the viewer page.",
"type": "boolean"
},
"highestPrice": {
"description": "Highest price among the offers on the page.",
"type": "number"
},
"imageUrl": {
"description": "Primary product image URL.",
"type": "string"
},
"imageUrls": {
"description": "Product image URLs from the viewer.",
"items": {
"type": "string"
},
"type": "array"
},
"isSponsored": {
"description": "True only when an explicit sponsored label was observed. Not a reliable ad classifier.",
"type": "boolean"
},
"lowestPrice": {
"description": "Lowest price among the offers on the page.",
"type": "number"
},
"merchant": {
"description": "Seller or merchant name.",
"type": "string"
},
"merchantUrl": {
"description": "Direct seller URL when available; otherwise the Google /goto redirect. Never guessed.",
"type": "string"
},
"offerCount": {
"description": "Total offer count reported by Google; only the first five offers are available over HTTP.",
"type": "integer"
},
"offers": {
"description": "First five seller offers from the product viewer.",
"items": {
"properties": {
"availability": {
"type": "string"
},
"badge": {
"type": "string"
},
"currency": {
"type": "string"
},
"delivery": {
"type": "string"
},
"discountPercent": {
"type": "number"
},
"isBestPrice": {
"type": "boolean"
},
"originalPrice": {
"type": "string"
},
"originalPriceValue": {
"type": "number"
},
"price": {
"type": "string"
},
"priceValue": {
"type": "number"
},
"returns": {
"type": "string"
},
"seller": {
"type": "string"
},
"sellerDomain": {
"type": "string"
},
"sellerId": {
"type": "string"
},
"sellerUrl": {
"type": "string"
},
"shipping": {
"type": "string"
},
"shippingValue": {
"type": "number"
},
"storeRating": {
"type": "number"
},
"storeReviewCount": {
"type": "integer"
},
"title": {
"type": "string"
},
"totalPrice": {
"type": "number"
},
"totalPriceDisplay": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"originalPrice": {
"description": "Original or list price as displayed, when discounted.",
"type": "string"
},
"originalPriceValue": {
"description": "Numeric original price.",
"type": "number"
},
"position": {
"description": "1-based position in the collected result set.",
"type": "integer"
},
"price": {
"description": "Current price as displayed, including currency symbol or code.",
"type": "string"
},
"priceHistory": {
"description": "Per-seller daily price history for the last 12 months, when Google exposes it.",
"items": {
"properties": {
"currency": {
"type": "string"
},
"points": {
"items": {
"properties": {
"date": {
"type": "string"
},
"price": {
"type": "number"
}
},
"type": "object"
},
"type": "array"
},
"seller": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"priceRange": {
"description": "Low/high price range across page offers.",
"properties": {
"currency": {
"type": "string"
},
"high": {
"type": "number"
},
"low": {
"type": "number"
}
},
"type": "object"
},
"priceValue": {
"description": "Numeric current price.",
"type": "number"
},
"productId": {
"description": "Real Google Shopping product ID from data-pid.",
"type": "string"
},
"productUrl": {
"description": "Real Google Shopping product viewer URL.",
"type": "string"
},
"query": {
"description": "Search query or category/deal query that produced the record.",
"type": "string"
},
"rating": {
"description": "Product rating as displayed on the search card.",
"type": "string"
},
"ratingValue": {
"description": "Numeric product rating.",
"type": "number"
},
"recordType": {
"description": "searchResult or product.",
"type": "string"
},
"returns": {
"description": "Returns policy text.",
"type": "string"
},
"reviewCount": {
"description": "Product review count as displayed on the search card.",
"type": "string"
},
"reviewCountValue": {
"description": "Numeric product review count.",
"type": "integer"
},
"scrapedAt": {
"description": "ISO 8601 collection timestamp.",
"type": "string"
},
"searchUrl": {
"description": "URL that produced the record.",
"type": "string"
},
"sellerDomain": {
"description": "Seller domain when Google exposes it.",
"type": "string"
},
"shipping": {
"description": "Shipping text (e.g. Free).",
"type": "string"
},
"shippingValue": {
"description": "Numeric shipping cost when known.",
"type": "number"
},
"specifications": {
"description": "Product specifications from the viewer.",
"items": {
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"title": {
"description": "Product title.",
"type": "string"
},
"typicalPriceRange": {
"description": "Typical price range reported by Google, when shown.",
"properties": {
"currency": {
"type": "string"
},
"display": {
"type": "string"
},
"high": {
"type": "number"
},
"low": {
"type": "number"
}
},
"type": "object"
},
"variants": {
"description": "Product variants exposed by the viewer.",
"items": {
"properties": {
"currency": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"price": {
"type": "string"
},
"priceValue": {
"type": "number"
},
"productUrl": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"title": "Google Shopping Products, Offers and Price History",
"views": {
"offers": {
"display": {
"component": "table",
"properties": {
"highestPrice": {
"format": "number",
"label": "Highest"
},
"lowestPrice": {
"format": "number",
"label": "Lowest"
},
"offerCount": {
"format": "number",
"label": "Offers"
},
"offers": {
"format": "text",
"label": "Page Offers"
},
"priceHistory": {
"format": "text",
"label": "History"
},
"productUrl": {
"format": "link",
"label": "Viewer"
},
"title": {
"format": "text",
"label": "Product"
},
"typicalPriceRange": {
"format": "text",
"label": "Typical"
}
}
},
"title": "Offers and Price History",
"transformation": {
"fields": [
"title",
"offerCount",
"lowestPrice",
"highestPrice",
"typicalPriceRange",
"offers",
"priceHistory",
"productUrl"
]
}
},
"overview": {
"display": {
"component": "table",
"properties": {
"currency": {
"format": "text",
"label": "Currency"
},
"merchant": {
"format": "text",
"label": "Merchant"
},
"position": {
"format": "number",
"label": "#"
},
"price": {
"format": "text",
"label": "Price"
},
"query": {
"format": "text",
"label": "Query"
},
"rating": {
"format": "text",
"label": "Rating"
},
"recordType": {
"format": "text",
"label": "Type"
},
"reviewCount": {
"format": "text",
"label": "Reviews"
},
"title": {
"format": "text",
"label": "Product"
}
}
},
"title": "Products Overview",
"transformation": {
"fields": [
"query",
"position",
"title",
"price",
"currency",
"merchant",
"rating",
"reviewCount",
"recordType"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
Google Shopping Price Comparison & Deal Finder
Collect real Google Shopping data for price comparison and deal monitoring. Search by keyword, open a known product by its Google Shopping ID or viewer URL, browse a department, or pull current deals across 48 countries.
Search records use the actual product ID (data-pid) and a viewer link built from the catalog or product ID Google returns. Product-mode records carry the numeric ID used in the lookup and a working viewer link. Product records add seller offers with shipping and totals, a price range, specifications, images, variants, and the 12-month per-seller price history when Google exposes it.
Modes
| Mode | What it does | Main input |
|---|---|---|
| search | Keyword search across Google Shopping results | queries |
| product | Opens the product viewer for one or more products | productIds |
| deals | Searches Google's deals view | queries (optional; defaults to deals) |
| category | Browses one of 15 Google Shopping departments | category |
What you get
Every record
query,position,recordType,scrapedAttitle,price(display) andpriceValue(number)originalPrice,originalPriceValue,discountPercentwhen discountedcurrency— the currency Google actually served, never relabelled from the requested countrymerchant,merchantUrl,sellerDomainrating,reviewCount,ratingValue,reviewCountValuedelivery,shipping,availability,condition,returnsimageUrl,imageUrlsisSponsored(true only when a sponsored label is visible)productId— realdata-pidon search/deals/category rows; in product mode it is the ID used in the viewer lookup (a catalog ID when the input is a viewer URL).catalogIdis the realdata-cidwhen Google exposes it.productUrl— a real Google Shopping viewer URLsearchUrl,hasMoreOffers,badge
Product records and enriched search results
brand,description,images,specifications,variantsofferCountandoffers— seller, seller ID, direct seller URL, domain, price, currency, original price, discount, shipping, delivery, total, availability, returns, store rating and review count, badge, best-price flaglowestPrice,highestPrice,priceRange,typicalPriceRangepriceHistory— per-seller daily points with ISO datesdiscussions— forum links about the product (not review text)dealFlags
Empty fields are omitted at every depth.
Inputs
| Field | Default | Description |
|---|---|---|
| --- | --- | |
mode |
search |
search (default), product, deals or category |
queries |
– | Keywords for search/deals. Optional in category mode |
productIds |
– | Catalog IDs, product IDs, viewer URLs or legacy product URLs for product mode |
category |
– | One of 15 departments (Electronics, Computers, Cell Phones, ...) |
countryCode |
us |
48 countries; sets the Google domain and location hint |
languageCode |
en |
Result language |
sortBy |
– | Relevance, rating, price low-to-high or high-to-low; applied to the collected rows |
condition |
– | Any, new, used or refurbished |
minPrice / maxPrice |
– | Price range in the requested market's currency; rows outside the numeric bounds are dropped. If Google serves another currency, a filtered run can return no rows. |
onSale |
false |
Keep products with an observed original price or discount |
freeShipping |
false |
Keep products whose delivery text says free |
minRating |
0 |
0–5; keeps products at or above the rating |
store |
– | Optional store name to bias and verify |
maxResultsPerQuery |
20 |
1–200 records per query (or products in product mode) |
includePriceHistory |
true |
Include the 12-month history when Google exposes it |
includeProductDetails |
false |
Open the product viewer for each search result (one extra request per result) |
Examples
Search for one product and include details and history:
{
"mode": "search",
"queries": ["iPhone 15 Pro Max"],
"maxResultsPerQuery": 5,
"countryCode": "us",
"includeProductDetails": true,
"includePriceHistory": true
}
Look up products by ID or viewer URL:
{
"mode": "product",
"productIds": ["10694224367759637585", "https://www.google.com/search?q=x&ibp=oshop&prds=productid:2457150560515047758,pvt:a"],
"countryCode": "ca",
"includePriceHistory": true
}
Price-filtered, free-shipping deals:
{
"mode": "deals",
"queries": ["wireless earbuds"],
"minPrice": 20,
"maxPrice": 100,
"freeShipping": true,
"sortBy": "price_low",
"countryCode": "uk"
}
Browse a department:
{
"mode": "category",
"category": "electronics",
"maxResultsPerQuery": 40,
"countryCode": "de"
}
Coverage and honest limits
- Up to five offers per product. Google's product viewer renders at most five offers over the public HTTP path (some products show fewer);
offerCountoften reports many more (209 in sampling). The remaining offers are not available without a browser identity. - About 127 products per query. Search pages start at 0, 10, 50 and 90; later starts return no products. Split a broad query into narrower queries to collect more.
- No product review text. Google does not expose product review bodies on this path. Ratings and review counts from search cards and store ratings on offers are included;
discussionscontains forum links only. - Localization is best effort. A country plus location hint usually returns the right market, but Google can serve another exit's currency. The actor retries once, then reports the actual
currencyand logs the mismatch. It never relabels one currency as another. - Filtered runs can be empty on a currency mismatch. Price bounds use the requested market's currency (for example USD for
countryCode: us). If Google serves another currency, a max-price or on-sale filter can exclude every row; the run then reports the served currency and fails with "No records scraped" instead of relabelling. - Sorting is client-side. Google's server-side sort chip is not honored on this page. The actor sorts the rows it actually collected.
- Filters are verified after collection. Price bounds, rating, store, sale and free-shipping checks are re-applied to every row. A condition is checked when the card shows one; many cards omit it.
- Display price can differ from the numeric offer price. A seller card can show a list price in
pricewhilepriceValuecarries the best price Google reports (one sampled EarFun offer displayed$89.99withpriceValue51.29). UsepriceValue,shippingValueandtotalPricefor comparisons. - Sponsored detection is not a classifier.
isSponsoredis true only when Google visibly labels a card as sponsored. Organic ads can appear without that label. - Some fields are source-dependent. Brand, description, price history and typical price are present only when Google exposes them for that product. They are omitted rather than guessed.
Practical use
- Price monitoring: run product mode on a fixed list of IDs and compare
priceValue,totalPriceandpriceHistoryover time. - Deal scanning: use deals mode with
onSale, a price range andsortBy: price_low. - Market research: search a category with
sortBy: review_scoreand compare merchants, availability and shipping. - Catalog enrichment: search with
includeProductDetailsto attach brand, images, specs and offers to keyword results.
FAQ
Do I need cookies, a login or a proxy setup? No. The actor reads public Google Shopping pages and handles its own access. There are no user credentials, cookies or proxy fields.
Can I get every seller offer? No. Up to five offers per product is a hard limit of the public product viewer; the total count is returned so you know how many exist.
Why is a field missing on some records? Google does not show every field on every card or product. Missing values are omitted; the actor does not fill them with guesses or sentinels.
Why does the currency differ from the country I chose? Google's market routing is not guaranteed. The actor detects the served currency, retries once with the location hint, and reports the actual result rather than assuming.
Can I sort by price? Yes — the actor sorts the collected rows by price or rating. The order is deterministic but reflects the rows collected, not Google's full index.
Does this return product review text? No. Review text is not available on this path.
Is this affiliated with Google? No. It is an independent third-party tool that reads publicly available Google Shopping pages.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build p859CrahOaABt6Kkq. Documentation is regenerated from the default published build; private drafts are not included.