Skip to main content
Product results are the merchant offers in Google’s right-rail product panel — merchant URL, price, installment terms, and stock, delivery and returns badges. The Google Search endpoint returns them as result.productResults automatically: no flag, no extra credits, since the panel is already in the HTML the scrape fetches.
Right-rail product panel on the Google SERP

Right-rail product panel on the Google SERP

Each row becomes one entry in stores[]. This panel is separate from the main-column “Popular products” and “More products” grids, which remain shopping cards — both can appear on the same SERP. Same shape as AI Mode product results, which are opt-in via include.expandProducts and billed per cluster.
The panel is not guaranteed. Whether Google renders it varies by session, not just by query — the same query can return productResults on one scrape and omit it on the next. When absent the field is omitted entirely, so treat it as optional rather than expecting an empty array. For dependable offers on a known product, use AI Mode with include.expandProducts.

Product result structure

Each entry describes one product cluster and its merchant offers. Only title is guaranteed — anything Google’s panel omits is left out of the object rather than sent as null. Panels can also carry brand, rating, reviews, priceRange, typicalPrices, variants, relatedProducts, userReviews, videos, discussionsAndForums and highlights, emitted under those names when present, though most carry none of them.

Specifications

A category name mapped to a flat set of spec key/value pairs:
Category names and spec keys arrive in the response language — a country: "MX" request returns {"general": {"Marca": "Sennheiser"}}. Iterate the object; don’t read a hard-coded key like specifications.general.Brand.

Store structure

Expect the first six on most offers and the rest only occasionally. Everything beyond name is optional and omitted when absent — Google shows different combinations per merchant, so an “Out of stock” listing may have no price or link at all.
link is not validated against the cluster. Google occasionally serves a merchant URL for an unrelated SKU, so an offer’s link can point at a different product than its description names. Verify against description if link correctness matters.

Price shape

currency here is an ISO code ("USD"), while shopping cards and inline products carry the raw symbol ("$"). Normalize before comparing across surfaces.

Response example