Google Shopping Variants Scraper - Color, Size & Capacity
Pricing
$8.00 / 1,000 product variants scrapeds
Google Shopping Variants Scraper - Color, Size & Capacity
Get the color, size and capacity options Google Shopping shows for a product. Enter catalog IDs with a country and receive one structured JSON record per product with its grouping ID, title and options. $0.008 per product; failed lookups are free.
Pricing
$8.00 / 1,000 product variants scrapeds
Rating
0.0
(0)
Developer
SR
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
2
Monthly active users
17 days ago
Last modified
Categories
Share
Google Shopping Variants Scraper
The Google Shopping variants scraper collects the color, size, capacity and other dimension options that Google Shopping shows for a product catalog ID. Use it to check which sizes or colors a product is listed with, to compare assortments between countries, or to enrich your own product catalogue. Supply one product or a list, choose each product's country, and receive one structured record per product in the Apify dataset. The original SKU, grouping ID, title and nested option fields remain available for existing integrations.
What the Google Shopping variants scraper returns
Each valid input object produces one product record or one diagnostic record. The product record contains its dimensions, and each dimension contains its options. This structure lets you compare available size labels or colors without treating every option as a separate product. Google decides which dimensions it shows for a particular product and country, so an empty dimensions array is a legitimate result rather than evidence that the request failed.
Use these records for catalogue checks, assortment comparisons and tracking which labels Google shows for an existing product. Preserve the SKU and country together when comparing runs: the same catalogue identifier can present different labels in different markets. The scraper does not convert sizes, merge labels across dimensions or infer an EAN from a catalogue identifier.
Input
products is a required array of objects. Each object accepts sku, the Google Shopping catalog ID as a string; country, an optional country code; and gpcid, an optional grouping ID already known to your application. Keep numeric identifiers as strings to preserve all their digits. This is a Google Shopping catalogue lookup, so a retailer's internal SKU or a barcode is not interchangeable with the required catalog ID.
The following input was used for a real successful run:
{"products": [{"sku": "6256749787782235170","country": "nl"}]}
The other original input names retain their defaults:
| Field | Default | Purpose |
|---|---|---|
concurrency | 3 | Accepts the original range of 1–10 concurrent products. |
default_country | "us" | Used when a product does not supply a country. |
use_cookies | true | Retains the original Google session option. |
use_proxy | false | Retains the original transport option for existing clients. |
enrich_offers | true | Retains the original optional enrichment setting. |
Country names are normalized to lowercase in the existing country field. For example, US remains usable and is returned as us. The added country_code field provides the uppercase country representation; the historical uk value becomes GB there. A product without a nonempty SKU yields a free diagnostic row, while non-object entries are skipped. Duplicate input objects remain separate records in their original order.
Output
The following record is from the real run above:
{"source": "google-shopping-variants","fetched_at": "2026-10-03T22:34:22.799Z","country": "nl","country_code": "NL","sku": "6256749787782235170","gpcid": "12601524251261046106","mid": "576462459559367079","title": "SUKI Koppelstuk hoek 91x91mm links 105deg","dimensions": []}
A product with variants returns its dimensions and options. This record for a Guerlain fragrance (input {"sku": "8062340666125262933", "country": "us"}) is also from a real run:
{"source": "google-shopping-variants","fetched_at": "2026-10-03T22:34:22.804Z","country": "us","country_code": "US","sku": "8062340666125262933","gpcid": "158194847738236757","mid": "576462774695805640","title": "Guerlain Aqua Allegoria Florabloom Forte Eau de Parfum","dimensions": [{"name": "Capacity","options": [{"label": "125 ML / 4.22 OZ", "selected": false, "catalogid": null, "mid": null, "title": null, "thumbnail": null},{"label": "75 ML / 2.53 OZ", "selected": false, "catalogid": null, "mid": null, "title": null, "thumbnail": null}]}]}
The original product fields are sku, country, gpcid, mid, title and dimensions. mid and title may be null when the source does not supply them. The additional source, fetched_at and country_code fields identify the source, retrieval time and normalized country without changing those original fields.
Each dimension has name and options. Every option preserves label, selected, catalogid, mid, title and thumbnail. selected is a boolean; the four descriptive identifier and image fields are strings or null. An unresolved option stays in the result with its label and null details. Null values mean the source did not provide resolved details for that option. They should not be interpreted as zero, empty strings or evidence that the product does not exist.
Current observed examples include a Guerlain fragrance with two Capacity options and a Nike shoe with Color and Size dimensions. These are examples of the returned structure, not a promise that a product always has the same options. The actor does not currently guarantee variant-specific EANs, seller prices, images or a complete offer list. enrich_offers keeps its existing input default, but it does not make those missing fields appear.
Per-product failures remain diagnostic dataset rows with an English error field and no billable gpcid. An unknown catalogue ID can therefore return a row explaining that no grouping ID was found, while the Apify run still succeeds. When Google returned a page but no usable product data, the row can still carry the title and mid that page contained; otherwise they are null. Such a row is never charged. Input-wide validation errors are recorded separately. The key-value store's summary retains itemCount, errorCount and billableCount; additional run metadata may also be present.
Use cases for Google Shopping variant data
- Assortment checks. Brands and retailers can see which sizes, colors or capacities Google Shopping lists for a product, and spot missing options in their own feed.
- Country comparisons. Run the same catalog ID for several countries to see which options appear in each market.
- Catalogue enrichment. Attach the Google grouping ID, product title and option labels to products you already track by Google Shopping catalog ID.
- Monitoring over time. Schedule the actor and compare runs to see when Google adds or removes a variant label.
- Follow-up lookups. Combine the grouping ID with other Google Shopping tools when you scrape Google Shopping for offers or reviews.
Google Shopping variants scraper compared with other options
| Option | What you get | Fit for variant options |
|---|---|---|
| This actor | One record per catalog ID with dimensions, option labels and the grouping ID | Built for this question; pay per product |
| Google's Merchant and Content API for Shopping | Your own products in your own Merchant Center account | Only your own feed, not how Google shows other products |
| General Google Shopping scrapers and SERP APIs | Search results, offers, sellers and prices | Usually no structured size or color options |
| Manual checks in the browser | Whatever one person sees in one country | Slow and hard to repeat across many products |
If you need prices, sellers or offers rather than variant options, a general Google Shopping scraper such as ShoppingResult's own Google Shopping Scraper (search for it in the Apify Store) is the better fit. This actor focuses on variant structure and leaves price scraping to those tools.
Pricing
The existing price is $0.008 per successful product record, using the product event. A successful product with an empty dimensions array still counts as one product. Diagnostic rows and empty results are free, and there is no separate actor-start event in this actor's price model. Options nested inside a product are not charged individually.
Users without a paid Apify plan receive at most ten dataset rows per run. Diagnostic rows count towards that delivery limit. Product events are charged only for successful product records actually delivered within the limit. Paying users retain the requested input list. Apify's own platform usage is separate from the actor's product-event price.
FAQ
Is a Google Shopping catalog ID the same as an EAN?
No. Pass the Google Shopping catalog ID in sku. The scraper preserves that identifier and Google's grouping ID; it does not claim to return or validate a barcode.
Why are option identifiers null?
Google can expose a dimension label without resolved product details for that option. The label remains useful for assortment work, and the original nullable fields remain present for compatible downstream code.
Does an empty dimensions array cost anything?
Yes, when the actor retrieved a valid product record. The event is priced per product, including products without variant dimensions. A diagnostic record with an error is free.
Can I submit several countries or repeat the same product?
Yes. Put the country on each object and submit the objects in the order you need. Repeated inputs remain repeated records, and countries are evaluated independently rather than collapsed into a single row.
Is this a Google Shopping API?
It works like one: call the actor through the Apify API with a list of catalog IDs and read the dataset as JSON. It is not Google's official Merchant API, which only covers products in your own Merchant Center account.
Does it return prices, sellers or EANs per variant?
No. The record contains option labels and the identifiers Google provides. For offers and prices, use a general Google Shopping scraper and join on the catalog ID or grouping ID.
Where do I find the Google Shopping catalog ID?
It is the numeric product identifier Google Shopping uses for a product page. Many Google Shopping scraping tools return it as the product or catalog ID; pass it as a string in sku.
Where can I download results or schedule another run?
Use the default Apify dataset to download JSON, JSONL, CSV or Excel. Existing Apify tasks, schedules and integrations can consume the same dataset fields. Inspect the summary and any diagnostic rows before treating a run as a complete catalogue comparison.
