{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["tabs","tab"]},"type":"markdown"},"seo":{"title":"Google Shopping Source — kwery Docs","siteUrl":"https://docs.kwery.co","description":"Google Shopping coverage in the kwery API — offers, merchant data, and supported lookup keys."},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"google-shopping","__idx":0},"children":["Google Shopping"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Google Shopping product and offer data. Search by keyword, by Google product ID, or by a"," ","structured product record for higher-precision matching."," ","See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://kwery.co/use-cases/google-shopping-price-api"},"children":["Google Shopping use case →"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"countries","level":2,"__idx":1},"children":["Supported countries "]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["country"]}," accepts: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["us"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["de"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["uk (gb)"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["au"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["at"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["br"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ca"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cz"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dk"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fr"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["in"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ie"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["it"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["jp"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mx"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["no"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pl"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nz"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nl"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ru"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sg"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["za"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["es"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["se"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fi"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ch"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tr"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ar"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cl"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["co"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["be"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gr"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["hu"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pt"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ro"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sk"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["hk"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["il"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["my"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ph"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sa"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["kr"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tw"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["th"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ua"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["vn"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ae"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["uk"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gb"]}," are two codes for the same UK marketplace — not a separate locale."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"keys","level":2,"__idx":2},"children":["Keys "]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Key"},"children":["Key"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Values"},"children":["Values"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["term"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Free text"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Keyword search — returns a list of product cards."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Google Shopping product ID"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Direct product lookup with offers."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["product"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Structured product record"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["GTIN plus additional product data"]}," — the highest-precision lookup (see format below)."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"gtin-plus-data","level":3,"__idx":3},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["product"]}," — send a GTIN plus additional data "]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Google Shopping has no direct GTIN lookup, so a bare GTIN can be ambiguous. With"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key: product"]}," you send the GTIN ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The value is a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["||"]},"-separated record; empty fields are allowed, position is fixed:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"title||brand||gtin||price||deeplink||size\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Example:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"STABILO point 88||STABILO||4006381333962||6.49||https://www.example.de/stabilo-point-88||\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The title and the deeplink host carry the most matching signal — include them whenever you"," ","have them."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"topics","level":2,"__idx":4},"children":["Topics "]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Topic"},"children":["Topic"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search"]}," (default)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Product lookup with seller offers."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"fields","level":2,"__idx":5},"children":["Product ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["content"]}," fields "]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["List responses carry a top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency"]}," beside the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_min"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_avg"]}," /"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_max"]}," aggregates."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["product_id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Google Shopping product ID."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identity"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Product identity key."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Product title."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["brand_name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Brand, where available."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["description"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Product description."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["url"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Product URL."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rating"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rating_count"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Aggregate reviews."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_min"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_avg"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_max"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Offer price aggregates."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offers_count"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Number of offers gathered."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["total_offers_count"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Total seller count Google reports for the product (may exceed ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offers_count"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offers"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Seller offers (seller name, price, currency, shipping, condition)."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key: term"]},", the result is a list of product cards, each with the product ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," you can use"," ","for a follow-up lookup."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["total_offers_count"]}," is greater than ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offers_count"]},", the snapshot is partial — more"," ","sellers exist than were gathered. On stream deliveries with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_meta: true"]},", this is"," ","also surfaced as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["meta.partial"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"example","level":2,"__idx":6},"children":["Example request "]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"cURL","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -s https://api.kwery.co/job \\\n  -H \"Authorization: Bearer $KWERY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"source\":\"google\",\"country\":\"de\",\"key\":\"product\",\"values\":[\"STABILO point 88||STABILO||4006381333962||||\"]}'\n","lang":"bash"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Node.js","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"js","header":{"controls":{"copy":{}}},"source":"const res = await fetch('https://api.kwery.co/job', {\n  method: 'POST',\n  headers: {\n    'Authorization': `Bearer ${process.env.KWERY_API_KEY}`,\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({ source: 'google', country: 'de', key: 'product', values: ['STABILO point 88||STABILO||4006381333962||||'] }),\n});\nconst data = await res.json();\nif (data.error) throw new Error(data.message);\nconsole.log('job id:', data.job._id);\n","lang":"js"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Python","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"import os, requests\n\nres = requests.post(\n    \"https://api.kwery.co/job\",\n    headers={\"Authorization\": f\"Bearer {os.environ['KWERY_API_KEY']}\"},\n    json={\"source\": \"google\", \"country\": \"de\", \"key\": \"product\", \"values\": [\"STABILO point 88||STABILO||4006381333962||||\"]},\n)\ndata = res.json()\nif data.get(\"error\"):\n    raise RuntimeError(data[\"message\"])\nprint(\"job id:\", data[\"job\"][\"_id\"])\n","lang":"python"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"JavaScript","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"js","header":{"controls":{"copy":{}}},"source":"const res = await fetch('https://api.kwery.co/job', {\n  method: 'POST',\n  headers: { 'Authorization': `Bearer ${KWERY_API_KEY}`, 'Content-Type': 'application/json' },\n  body: JSON.stringify({ source: 'google', country: 'de', key: 'product', values: ['STABILO point 88||STABILO||4006381333962||||'] }),\n});\nconst data = await res.json();\nif (data.error) throw new Error(data.message);\nconsole.log('job id:', data.job._id);\n","lang":"js"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"PHP","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"php","header":{"controls":{"copy":{}}},"source":"<?php\n$ch = curl_init('https://api.kwery.co/job');\ncurl_setopt_array($ch, [\n  CURLOPT_RETURNTRANSFER => true,\n  CURLOPT_POST => true,\n  CURLOPT_HTTPHEADER => [\n    'Authorization: Bearer ' . getenv('KWERY_API_KEY'),\n    'Content-Type: application/json',\n  ],\n  CURLOPT_POSTFIELDS => '{\"source\":\"google\",\"country\":\"de\",\"key\":\"product\",\"values\":[\"STABILO point 88||STABILO||4006381333962||||\"]}',\n]);\n$data = json_decode(curl_exec($ch), true);\nif ($data['error']) { throw new Exception($data['message']); }\necho 'job id: ' . $data['job']['_id'];\n","lang":"php"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Go","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"go","header":{"controls":{"copy":{}}},"source":"package main\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"os\"\n)\n\nfunc main() {\n\tbody := []byte(`{\"source\":\"google\",\"country\":\"de\",\"key\":\"product\",\"values\":[\"STABILO point 88||STABILO||4006381333962||||\"]}`)\n\treq, _ := http.NewRequest(\"POST\", \"https://api.kwery.co/job\", bytes.NewBuffer(body))\n\treq.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"KWERY_API_KEY\"))\n\treq.Header.Set(\"Content-Type\", \"application/json\")\n\tresp, err := http.DefaultClient.Do(req)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdefer resp.Body.Close()\n\tvar data map[string]any\n\tjson.NewDecoder(resp.Body).Decode(&data)\n\tfmt.Println(\"job:\", data[\"job\"])\n}\n","lang":"go"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Java","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"java","header":{"controls":{"copy":{}}},"source":"var client = java.net.http.HttpClient.newHttpClient();\nvar request = java.net.http.HttpRequest.newBuilder()\n    .uri(java.net.URI.create(\"https://api.kwery.co/job\"))\n    .header(\"Authorization\", \"Bearer \" + System.getenv(\"KWERY_API_KEY\"))\n    .header(\"Content-Type\", \"application/json\")\n    .POST(java.net.http.HttpRequest.BodyPublishers.ofString(\n        \"{\\\"source\\\":\\\"google\\\",\\\"country\\\":\\\"de\\\",\\\"key\\\":\\\"product\\\",\\\"values\\\":[\\\"STABILO point 88||STABILO||4006381333962||||\\\"]}\"))\n    .build();\nvar response = client.send(request, java.net.http.HttpResponse.BodyHandlers.ofString());\nSystem.out.println(response.body());\n","lang":"java"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"C#","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"csharp","header":{"controls":{"copy":{}}},"source":"using var client = new HttpClient();\nclient.DefaultRequestHeaders.Add(\"Authorization\",\n    $\"Bearer {Environment.GetEnvironmentVariable(\"KWERY_API_KEY\")}\");\nvar body = new StringContent(\n    \"\"\"{\"source\":\"google\",\"country\":\"de\",\"key\":\"product\",\"values\":[\"STABILO point 88||STABILO||4006381333962||||\"]}\"\"\",\n    System.Text.Encoding.UTF8, \"application/json\");\nvar response = await client.PostAsync(\"https://api.kwery.co/job\", body);\nConsole.WriteLine(await response.Content.ReadAsStringAsync());\n","lang":"csharp"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Ruby","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"ruby","header":{"controls":{"copy":{}}},"source":"require 'net/http'\nrequire 'json'\n\nuri = URI('https://api.kwery.co/job')\nreq = Net::HTTP::Post.new(uri, {\n  'Authorization' => \"Bearer #{ENV['KWERY_API_KEY']}\",\n  'Content-Type' => 'application/json',\n})\nreq.body = '{\"source\":\"google\",\"country\":\"de\",\"key\":\"product\",\"values\":[\"STABILO point 88||STABILO||4006381333962||||\"]}'\ndata = JSON.parse(Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }.body)\nraise data['message'] if data['error']\nputs \"job id: #{data['job']['_id']}\"\n","lang":"ruby"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"example-response","level":2,"__idx":7},"children":["Example response "]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Results are fetched with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /job/{id}/download"]}," once the job is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["finished"]},". This is a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["real response"]},", captured live on 2026-09-14 — the exact payload a self-serve account receives for the request above."," ","The payload is complete and unedited. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offers_count: 5"]}," against ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["total_offers_count: 44"]}," shows a partial snapshot — Google reports 44 sellers, 5 were gathered on this page (see the note above the field table). The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["product"]}," record resolved the exact catalog product (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identity"]},"), which is why ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["trust.score"]}," is 0.98."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"job_id\": \"6aa7b6bdda6a238d129dc3e7\",\n  \"status\": \"finished\",\n  \"results\": [\n    {\n      \"query\": {\n        \"source\": \"google\",\n        \"country\": \"de\",\n        \"key\": \"product\",\n        \"value\": \"STABILO point 88||STABILO||4006381333962||||\",\n        \"topic\": \"search\",\n        \"max_pages\": 1,\n        \"max_age\": 1200\n      },\n      \"content\": {\n        \"product_id\": \"1570378438328501500\",\n        \"identity\": \"catalogid:1570378438328501500,query:STABILO point 88\",\n        \"name\": \"Fineliner STABILO point 88\",\n        \"brand_name\": \"STABILO\",\n        \"description\": \"Der Fineliner STABILO point 88 im Etui überzeugt durch seine präzise, metallgefasste Spitze mit einer Stärke von 0,4 mm, die auch für den Einsatz mit Schablonen geeignet ist. Die Tinte auf Wasserbasis ist in 8 Farben sortiert und lichtbeständig. Ein weiterer Vorteil des STABILO point 88 Fineliners ist, dass er einige Tage offen liegen bleiben kann, ohne einzutrocknen. Die Kappe lässt sich am Stiftende aufstecken und ist farblich passend zur jeweiligen Schreibfarbe gestaltet. Der Schaft des Fineliners ist orange mit weißen Kantenstreifen und besitzt eine Griffzone aus Kunststoff. Das Etui enthält insgesamt 8 Stifte des STABILO point 88 und eignet sich damit ideal für vielfältige Schreib- und Zeichenaufgaben in unterschiedlichen Farben.\",\n        \"url\": \"https://www.google.de/search?ibp=oshop&q=STABILO+point+88&prds=catalogid:1570378438328501500&gl=de&hl=de&uule=w+CAIQICIHR2VybWFueQ\",\n        \"rating\": 0,\n        \"rating_count\": 0,\n        \"price_avg\": 6.64,\n        \"price_max\": 8,\n        \"price_min\": 5.36,\n        \"offers_count\": 5,\n        \"total_offers_count\": 44,\n        \"offers\": [\n          {\n            \"name\": \"STABILO - Fineliner - point 88 | 8er Pack\",\n            \"price\": 5.93,\n            \"currency\": \"EUR\",\n            \"shipping\": 0,\n            \"total\": 5.93,\n            \"seller_name\": \"Amazon.de - Amazon.de-Seller\",\n            \"seller_url\": \"https://www.amazon.de\",\n            \"url\": \"https://www.amazon.de/Fineliner-STABILO-point-verschiedenen-Farben/dp/B08YFBLP4Z?source=ps-sl-shoppingads-lpcontext&ref_=fplfs&psc=1&smid=A2LZXSFK6LSJD5\",\n            \"seller_rating\": null,\n            \"seller_rating_count\": null,\n            \"marketplace_name\": \"N/A\",\n            \"seller_type\": \"standalone-shop\"\n          },\n          {\n            \"name\": \"STABILO point 88 neue Farben sortiert, 8er-Set, Kunststoffetui (88/8-04)\",\n            \"price\": 5.93,\n            \"currency\": \"EUR\",\n            \"shipping\": 0,\n            \"total\": 5.93,\n            \"seller_name\": \"Geizhals Preisvergleich\",\n            \"seller_url\": \"https://geizhals.de\",\n            \"url\": \"https://geizhals.de/stabilo-point-88-2021-farben-sortiert-88-8-04-a2619174.html?hloc=de&hloc=at&nocookie=1&highlight=409480119035&mtm_campaign=css&mtm_kwd=2619174&mtm_source=google_css&gcsscid=1\",\n            \"seller_rating\": null,\n            \"seller_rating_count\": null,\n            \"marketplace_name\": \"N/A\",\n            \"seller_type\": \"standalone-shop\"\n          },\n          {\n            \"name\": \"STABILO point 88 Fineliner - 0,4 mm - 8er Etui\",\n            \"price\": 5.36,\n            \"currency\": \"EUR\",\n            \"shipping\": 0,\n            \"total\": 5.36,\n            \"seller_name\": \"Bürohengst\",\n            \"seller_url\": \"https://www.buerohengst.com\",\n            \"url\": \"https://www.buerohengst.com/stabilo-point-88-fineliner-0-4-mm-8er-etui\",\n            \"seller_rating\": 4.698,\n            \"seller_rating_count\": 1478,\n            \"marketplace_name\": \"N/A\",\n            \"seller_type\": \"standalone-shop\"\n          },\n          {\n            \"name\": \"Fineliner STABILO point 88\",\n            \"price\": 8,\n            \"currency\": \"EUR\",\n            \"shipping\": 4.95,\n            \"total\": 12.95,\n            \"seller_name\": \"stabilo.com\",\n            \"seller_url\": \"https://www.stabilo.com\",\n            \"url\": \"https://www.stabilo.com/de/fineliner-stabilo-point-88/eo88-8-04\",\n            \"seller_rating\": 0,\n            \"seller_rating_count\": 0,\n            \"marketplace_name\": \"N/A\",\n            \"seller_type\": \"standalone-shop\"\n          },\n          {\n            \"name\": \"STABILO Fineliner point 88\",\n            \"price\": 7.99,\n            \"currency\": \"EUR\",\n            \"shipping\": 3.95,\n            \"total\": 11.94,\n            \"seller_name\": \"Thalia.de\",\n            \"seller_url\": \"https://www.thalia.de\",\n            \"url\": \"https://www.thalia.de/ul/shop/home/artikeldetails/A1060621280\",\n            \"seller_rating\": 4.756,\n            \"seller_rating_count\": 989,\n            \"marketplace_name\": \"N/A\",\n            \"seller_type\": \"standalone-shop\"\n          }\n        ],\n        \"currency\": \"EUR\"\n      },\n      \"success\": true,\n      \"updated_at\": \"2026-09-14T08:56:48.497Z\",\n      \"trust\": {\n        \"score\": 0.98,\n        \"components\": {\n          \"identity\": 0.9099999999999999,\n          \"completeness\": 1,\n          \"price_integrity\": 1,\n          \"offer_contamination\": 1,\n          \"freshness\": 1\n        },\n        \"flagged_offers\": []\n      },\n      \"served_from\": \"live\",\n      \"observed_at\": \"2026-09-14T08:56:48.468Z\"\n    }\n  ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["trust"]}," block is explained in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/trust"},"children":["Confidence score"]},"; ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["served_from"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["observed_at"]}," in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/audit-and-provenance"},"children":["Audit & provenance"]},"."]}]},"headings":[{"value":"Google Shopping","id":"google-shopping","depth":1},{"value":"Supported countries","id":"countries","depth":2},{"value":"Keys","id":"keys","depth":2},{"value":"product — send a GTIN plus additional data","id":"gtin-plus-data","depth":3},{"value":"Topics","id":"topics","depth":2},{"value":"Product content fields","id":"fields","depth":2},{"value":"Example request","id":"example","depth":2},{"value":"Example response","id":"example-response","depth":2}],"frontmatter":{"seo":{"title":"Google Shopping Source — kwery Docs","description":"Google Shopping coverage in the kwery API — offers, merchant data, and supported lookup keys."}},"lastModified":"2026-09-17T10:00:37.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/sources/google-shopping","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}