Google Shopping Search API ​
API health status
Healthy Available Limited Mostly unavailable No data
Loading health status...
Get Google shopping Search data, including product listings, prices, and merchants, for pricing research and catalog monitoring.
Tags: Google Shopping
Parameters ​
| Name | Required | Type | Default | Description |
|---|---|---|---|---|
| query | Yes | string | The shopping search query (e.g., 'iPhone 15', 'running shoes'). | |
| page | No | integer | 0 | The results page number. Use 0 for the first page, 1 for the second, and so on. |
| html | No | boolean | false | Set to true to return the raw HTML of the Google search results page alongside the structured data. |
| country | No | string | us | Set the target country code (e.g., 'us', 'uk') to localize results. See Google Countries. |
| domain | No | string | google.com | The Google domain to use for the search (e.g., 'google.com', 'google.co.uk'). See Google Domains. |
| language | No | string | en | Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See Google Language. |
| lr | No | string | Restrict results to one or more languages using the 'lang_{language_code}' format (e.g., 'lang_en'). See Google LR Language. | |
| shoprs | No | string | A unique ID used to apply specific shopping filters. Usually obtained from previous response. | |
| uule | No | string | Encoded location string (UULE) used to precisely localize Google search results. This is an advanced/technical parameter — if you’re not familiar with it, you can leave it empty and omit it. | |
| tbs | No | string | Advanced search filter parameter (tbs) used to apply Google result filters (e.g. time range). This is an advanced parameter — if you’re not familiar with it, you can leave it empty. | |
| safe | No | string | off | SafeSearch filter setting. Set to 'active' to filter adult content, or 'off' to disable it. |
| nfpr | No | string | 0 | Controls Google's auto-correction. Set to '1' to exclude corrected results, '0' to include them. |
Copy Request ​
bash
curl -X GET "https://api.justserpapi.com/api/v1/google/shopping/search?query=coffee" \
-H "X-API-Key: YOUR_API_KEY"js
const res = await fetch("https://api.justserpapi.com/api/v1/google/shopping/search?query=coffee", {
headers: { "X-API-Key": "YOUR_API_KEY" }
});
const data = await res.json();
console.log(data);python
import requests
url = "https://api.justserpapi.com/api/v1/google/shopping/search"
headers = { "X-API-Key": "YOUR_API_KEY" }
params = {
"query": "coffee"
}
response = requests.get(url, headers=headers, params=params)
print(response.json())php
<?php
$url = "https://api.justserpapi.com/api/v1/google/shopping/search?query=coffee";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"X-API-Key: YOUR_API_KEY"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
client := &http.Client{}
req, _ := http.NewRequest("GET", "https://api.justserpapi.com/api/v1/google/shopping/search?query=coffee", nil)
req.Header.Set("X-API-Key", "YOUR_API_KEY")
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}Response ​
Loading the latest response example...
