Skip to content
Last updated

Google Shopping

Google Shopping product and offer data. Search by keyword, by Google product ID, or by a structured product record for higher-precision matching.

Supported countries

country accepts: us de uk (gb) au at br ca cz dk fr in ie it jp mx no pl nz nl ru sg za es se fi ch tr ar cl co be gr hu pt ro sk hk id il my ph sa kr tw th ua vn ae

uk and gb are two codes for the same UK marketplace — not a separate locale.

Keys

KeyValuesDescription
termFree textKeyword search — returns a list of product cards.
idGoogle Shopping product IDDirect product lookup with offers.
productStructured product recordGTIN plus additional product data — the highest-precision lookup (see format below).

product — send a GTIN plus additional data

Google Shopping has no direct GTIN lookup, so a bare GTIN can be ambiguous. With key: product you send the GTIN together with everything else you know about the product — title, brand, your price, a deeplink — and kwery uses all of it to select the right Google Shopping product. This is the recommended key when your catalog has more than just an EAN.

The value is a ||-separated record; empty fields are allowed, position is fixed:

title||brand||gtin||price||deeplink||size

Example:

Tissot T-Touch Expert Solar||Tissot||7611608277942||850.00||https://www.example.de/tissot-t-touch||

The title and the deeplink host carry the most matching signal — include them whenever you have them.

Topics

TopicDescription
search (default)Product lookup with seller offers.

Product content fields

FieldDescription
idGoogle Shopping product ID.
identityProduct identity key.
nameProduct title.
brand_nameBrand, where available.
descriptionProduct description.
urlProduct URL.
review_rating / review_countAggregate reviews.
price_min / price_avg / price_maxOffer price aggregates.
offers_countNumber of offers gathered.
total_offers_countTotal seller count Google reports for the product (may exceed offers_count).
offersSeller offers (seller name, price, currency, shipping, condition).

For key: term, the result is a list of product cards, each with the product id you can use for a follow-up lookup.

When total_offers_count is greater than offers_count, the snapshot is partial — more sellers exist than were gathered. On stream deliveries with include_meta: true, this is also surfaced as meta.partial.

Example request

curl -s https://api.kwery.co/job \
  -H "Authorization: Bearer $KWERY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source":"google","country":"de","key":"term","values":["Tissot T-Touch Expert Solar"]}'

Example response

Results are fetched with GET /job/{id}/download once the job is finished — each entry is the result for one input value (abridged); a term search returns a list of product cards:

[
  {
    "key": "Tissot T-Touch Expert Solar",
    "success": true,
    "reason": null,
    "content": {
      "products": [
        {
          "id": "1234567890",
          "name": "Tissot T-Touch Expert Solar",
          "url": "https://www.google.com/shopping/product/1234567890",
          "price_min": 799.00,
          "currency": "EUR"
        }
      ]
    }
  }
]