# Google Shopping

**SERP API Google Shopping Query Parameters**

Configure Google Shopping queries using Thordata’s SERP API, including localization parameters, geotargeting, pagination, and "advanced parameter" output options.

<details>

<summary><strong><code>q</code> ,</strong>Search Query<strong>(Required)</strong></summary>

Define the search query used for data crawling (default value: `q=pizza`). Any keywords in any language are supported.

**Example Request:**\
Example with `q`:<mark style="color:blue;">pizza</mark> parameter

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "json=1"
```

</details>

## Localization

<details>

<summary><code>google_domain</code><strong>,</strong>Domain<strong>(Optional)</strong></summary>

Defines the domain used for scraping. Default: `google.com`.&#x20;

Modify this or refer to the [Google Domains page](https://domains.squarespace.com/) for a full list of supported domains.

**Example Request:**

Example results for `q` : <mark style="color:blue;">pizza</mark> ,`google_domain`: <mark style="color:blue;">google.co.ao</mark>

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "google_domain=google.co.ao" \
 -d "json=1"
```

</details>

<details>

<summary><strong><code>gl</code> ,</strong>Country<strong>(Optional)</strong></summary>

Specifies the country/region for localized search results (default: `us`). Uses a two-letter country code (e.g., `us`, `ru`, `uk`).

For supported codes, see [Google’s Country List](https://developers.google.com/adwords/api/docs/appendix/geotargeting).

**Example Request:**

Example results for `q` : <mark style="color:blue;">pizza</mark>,`gl`: <mark style="color:blue;">ru</mark>

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "gl=ru" \
 -d "json=1"
```

</details>

<details>

<summary><strong><code>hl</code> ,</strong>Language<strong>(Optional)</strong></summary>

Sets the UI language for search results (default: `en`). Uses a two-letter language code (e.g., `en`, `es`, `zh-CN`).

&#x20;Full list: [Google Language Codes](https://developers.google.com/google-ads/api/docs/start).

**Example Request:**

Example results for `q` : <mark style="color:blue;">pizza</mark>,`hl`: <mark style="color:blue;">es</mark>

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "json=1" \
 -d "hl=es"
```

</details>

## Geotargeting

<details>

<summary><strong><code>location</code> ,</strong>Location<strong>(Optional)</strong></summary>

Simulates searches from a precise location. Must be paired with `uule`. If omitted, the proxy’s location may be used.

**Example Request:**

Example results for `q` : <mark style="color:blue;">pizza</mark>,`location`:<mark style="color:blue;">India</mark>,`uule`:<mark style="color:blue;">w+CAIQICIFSW5kaWE</mark>

```
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "json=1" \
 -d "location=India" \
 -d "uule=w+CAIQICIFSW5kaWE"
```

</details>

<details>

<summary><strong><code>uule</code> ,</strong>Encoded Location<strong>(Optional)</strong></summary>

Encodes the target location via Base64. Use with `location`.&#x20;

**Example Request:**

Example results for `q` : <mark style="color:blue;">pizza</mark>,`location`:<mark style="color:blue;">India</mark>,`uule`:<mark style="color:blue;">w+CAIQICIFSW5kaWE</mark>

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "json=1" \
 -d "location=India" \
 -d "uule=w+CAIQICIFSW5kaWE"
```

</details>

## Pagination

<details>

<summary><strong><code>start</code> ,</strong>Result offset<strong>(Optional)</strong></summary>

Parameter defines the result offset. It skips the given number of results. It's used for pagination. (e.g., `0` (default) is the first page of results, `10` is the 2nd page of results, `20` is the 3rd page of results, etc.).

**Example Request:**

Example results for `q` : <mark style="color:blue;">pizza</mark>,`start`:<mark style="color:blue;">30</mark>

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "json=1" \
 -d "start=30"
```

</details>

<details>

<summary><strong><code>num</code> ,</strong>Results per page<strong>(Optional)</strong></summary>

Sets the number of results per page (default: `20`).

**Example Request:**

Example results for `q` : <mark style="color:blue;">pizza</mark>,`num`:<mark style="color:blue;">20</mark>

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "json=1" \
 -d "num=20"
```

</details>

## Advanced Parameters

<details>

<summary><strong><code>tbs</code> ，Advanced Search Parameters(Optional)</strong></summary>

Time/type filtering (supports complex conditions), such as `tbs`=qdr:d qdr:d= contents within 24 hours `tbs`=sur:f, for example, shows only images

**Example Request:**

Example results for `q` : <mark style="color:blue;">pizza</mark>,`tbs`:<mark style="color:blue;">sur:f</mark>

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "json=1" \
 -d "tbs=sur:f"
```

</details>

<details>

<summary><code>shoprs</code> <strong>，Search Filter ID(Optional)</strong></summary>

The parameter defines the token that includes metadata about query and search filter(s). Providing `q`parameter alongside the shoprs is not required.

**Example Request:**

Example results for `q` : <mark style="color:blue;">pizza</mark>,`shoprs`:<mark style="color:$primary;">shoprs\_1</mark>

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "json=1" \
 -d "shoprs=shoprs_1"
```

</details>

<details>

<summary><code>min_price</code> <strong>，最低价格(Optional)</strong></summary>

The lower limit for the price range query. This parameter will override the corresponding filter embedded in the 'shoprs' parameter.

**示例请求：**

**Example Request:**

Example results for `q` : <mark style="color:blue;">pizza</mark>,`min_price`:<mark style="color:blue;">10</mark>

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "json=1" \
 -d "min_price=10"
```

</details>

<details>

<summary><code>max_price</code> <strong>，最高价格(Optional)</strong></summary>

价格区间查询的上限。此参数会覆盖嵌入到 `shoprs` 参数中的相应过滤器。

**示例请求：**

查询  `q` : <mark style="color:blue;">pizza</mark>,`max_price`:<mark style="color:blue;">100</mark>的示例

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "json=1" \
 -d "min_price=10" \
 -d "max_price=100"
```

</details>

<details>

<summary><code>sort_by</code><strong>，排序依据(Optional)</strong></summary>

参数定义结果的排序顺序。

可用选项：

`1` - 价格：从低到高

`2` - 价格：从高到低

**示例请求：**

查询 `q` : <mark style="color:blue;">pizza</mark>,`sort_by`:1的示例

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "json=1" \
 -d "sort_by=1"
```

</details>

<details>

<summary><code>free_shipping</code><strong>，免费送货(Optional)</strong></summary>

仅显示免费送货的商品。

**示例请求：**

查询 `q` : <mark style="color:blue;">pizza</mark>,`free_shipping`:true的示例

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "gl=ad" \
 -d "json=1" \
 -d "free_shipping=true"
```

</details>

<details>

<summary><code>on_sale</code><strong>，特价中(Optional)</strong></summary>

仅显示正在促销的商品。

**示例请求：**

查询 `q` : <mark style="color:blue;">pizza</mark>,`on_sale`:true的示例

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "gl=ad" \
 -d "json=1" \
 -d "on_sale=true"
```

</details>

<details>

<summary><code>small_business</code><strong>，小型企业(Optional)</strong></summary>

仅显示小型企业的产品。

**示例请求：**

查询 `q` : <mark style="color:blue;">pizza</mark>,`small_business`:true的示例

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "gl=ad" \
 -d "json=1" \
 -d "small_business=true"
```

</details>

<details>

<summary><code>direct_link</code><strong>，包括直接链接(Optional)</strong></summary>

此参数确定搜索结果是否应包含每个产品的直接链接。默认情况下，它为 `false`，如果您需要直接链接，请将其设置为 `true`。

**示例请求：**

查询 `q` : <mark style="color:blue;">pizza</mark>,`direct_link`:true的示例

```sh
curl -X POST https://scraperapi.thordata.com/request \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Authorization: Bearer token" \
 -d "engine=google_shopping" \
 -d "q=pizza" \
 -d "gl=ad" \
 -d "json=1" \
 -d "direct_link=true"
```

</details>

For further assistance, contact us at **<support@thordata.com>**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.thordata.com/doc/scraping/serp-api/query-parameters/google/google-shopping.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
