# Google

Measured Google data, one operation per call — five surfaces. ops: search (web results for a query: link, title, snippet, domain, rank, related questions and searches; supports site:, intitle:, OR; country/language/site/since/until filters; billed per page of ~10), news (Google News articles: headline, publisher, date, link; postedWithin, country and language), images (Google Images: URL, source page, dimensions), shopping (Shopping offers: title, merchant, price, rating, review count; country, language, postedWithin), playReviews (Play Store reviews for up to five apps by package id or URL — text, rating, date, app version, developer reply, sub-ratings; country, language, sort). Ops are independent — issue several as PARALLEL tool calls. Fresh fetches cost credits; anything already held is free.

`POST https://api.zomler.com/api/v1/platforms/google`

-   [search](#search)
-   [news](#news)
-   [images](#images)
-   [shopping](#shopping)
-   [playReviews](#playReviews)

## search

from 1 credit

Google web results — organic links with titles, snippets and rank; supports operators (site:, intitle:, OR). Billed per page of about ten results.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `query` (required) | string | — | ≤300 chars |
| `pages`◆ | integer | `1` | 1-5 |
| `country` | string | `—` | ISO alpha-2 |
| `language` | string | `—` | BCP-47 |
| `site`◆ | string | `—` | ≤120 chars |
| `relatedToSite`◆ | string | `—` | ≤120 chars |
| `since` | string | `—` | YYYY-MM-DD |
| `until` | string | `—` | YYYY-MM-DD |
| `fileTypes`◆ | list of string | `[]` | each ≤8 chars |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/google \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "op": "search",
    "query": "example"
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/google", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "op": "search",
      "query": "example"
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/google",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "op": "search",
        "query": "example"
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## news

from 39 credits for 20

Google News articles for a query — headline, publisher, date, link.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `query` (required) | string | — | ≤300 chars |
| `postedWithin` | enum | `7d` | `1h`, `1d`, `7d`, `1y`, `any` |
| `country` | string | `US` | ISO alpha-2 |
| `language` | string | `en` | BCP-47 |
| `limit` | integer | `20` | 1-100 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/google \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "op": "news",
    "query": "example"
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/google", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "op": "news",
      "query": "example"
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/google",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "op": "news",
        "query": "example"
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## images

from 20 credits for 20

Google Images for a query — URL, source page, dimensions, thumbnail.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `query` (required) | string | — | ≤300 chars |
| `limit` | integer | `20` | 1-100 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/google \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "op": "images",
    "query": "example"
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/google", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "op": "images",
      "query": "example"
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/google",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "op": "images",
        "query": "example"
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## shopping

from 58 credits for 20

Google Shopping offers for a query — title, merchant, price, rating.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `query` (required) | string | — | ≤300 chars |
| `country` | string | `US` | ISO alpha-2 |
| `language` | string | `en` | BCP-47 |
| `postedWithin` | enum | `any` | `1h`, `1d`, `7d`, `30d`, `any` |
| `limit` | integer | `20` | 1-100 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/google \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "op": "shopping",
    "query": "example"
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/google", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "op": "shopping",
      "query": "example"
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/google",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "op": "shopping",
        "query": "example"
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## playReviews

from 5 credits for 50 · fresh for 1 day

Play Store reviews for up to five apps, by package id or store URL.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `subjects` (required) | list of string | — | 1-5 items |
| `country` | string | `US` | ISO alpha-2 |
| `language` | string | `en` | BCP-47 |
| `sort` | enum | `newest` | `newest`, `rating_high`, `helpful` |
| `limit` | integer | `50` | 1-100 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/google \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "op": "playReviews",
    "subjects": [
      "example"
    ]
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/google", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "op": "playReviews",
      "subjects": [
        "example"
      ]
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/google",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "op": "playReviews",
        "subjects": [
          "example"
        ]
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

---

Source: https://zomler.com/docs/api/platforms/google
