---
title: "Google immersive product detail"
method: GET
path: "/v1/google/products/detail"
tags: ["Google Products"]
---

# Google immersive product detail

`GET /v1/google/products/detail`

Get deep product details from Google's immersive product page.

Two-step fetch: render the Shopping SERP for ``q`` to extract
session-bound tokens, then call ``/async/oapv`` with them. Returns
404 when the product isn't on the SERP — the caller's query has to
surface the tile because the tokens are session-scoped.

Response time: ~3 s warm (cached SERP), ~6 s cold (SERP + RPC).
Credits: 5 per call (matches the Shopping product-detail cost).

## Query parameters

- `product_id` string, required — Google Shopping product identifier (``gpcid``). Returned as ``product_id``/``gpcid`` on ``/shopping/search`` tiles.
- `q` string, required — Original search query that surfaced the product. Required by Google's ``/async/oapv`` RPC — the page-level ``ei``/``xsrf`` and per-tile ``oapvfc`` tokens are extracted from the SERP Google renders for this exact query, so the product must be discoverable via this query.
- `gl` string, nullable — Country code (ISO 3166 alpha-2). Defaults to the country implied by ``domain`` (e.g. ``google.com.au`` → ``au``), falling back to ``us`` when domain doesn't carry a country hint.
- `hl` string — Language code.
- `domain` string — Google domain ("google.com" / "google.co.uk" / …) — used to localise the SERP render that produces the session tokens.
- `include_offers` boolean — When true, return the full merchant-offer list with deep product URLs for every merchant Google ships an offer-block for. Offers come from the primary oapv response (top ~5 panel merchants: DICK'S, Kohl's, Zappos, etc.) plus a parallel paginated fan-out of ``/async/oapv`` with ``async_context=MORE_STORES`` at offsets sori=5..60 — which surfaces an additional ~50 sellers including GOAT, eBay sub-sellers, Macy's, StockX, Poshmark, Flight Club, etc. (+5 parallel RPCs, ~1 s wall-clock).
- `include_variants` boolean — When true, also fetch size/colour variants via ``/async/toy_v`` (+1 secondary RPC, ~1 s).
- `resolve_deep_urls` boolean — When true (only meaningful with ``include_offers=true``), browser-render the Shopping SERP so additional merchant deep URLs surface from the rendered HTML. Best-effort: catalog-feed retailers (DSW / Famous Footwear / Shoe Carnival / Myer / rebel) get deep URLs; paid-Shopping-Ads merchants (Zappos, GOAT, Academy, etc.) still get their homepage because their click-through URLs are signed by Google's aclk redirect and can't be reproduced server-side. Adds ~5–8 s latency.

## Response `200`

Successful Response

- ProductDetailResponse — Response for GET /api/v1/products/detail.
  - `title` string, nullable
  - `description` string, nullable
  - `brand` string, nullable
  - `rating` number, nullable
  - `reviews_count` integer, nullable
  - `price_range` string, nullable
  - `sellers` ProductSeller[]
    - `name` string, required
    - `price` string, nullable
    - `link` string, nullable
    - `shipping` string, nullable
  - `specs` object
  - `images` string[]
  - `product_id` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/scrapebadger/apis/scrapebadger-account-api.md) · [All operations](https://skmtc.net/scrapebadger/apis/scrapebadger-account-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/scrapebadger/scrapebadger-account-api/versions/4a1ef8777baf/schema)
