[ docs ]Search
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/googlesearch
from 1 creditGoogle 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 |
|---|---|---|---|
queryrequired | 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
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
}'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);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 20Google News articles for a query — headline, publisher, date, link.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
queryrequired | string | — | ≤300 chars |
postedWithin | enum | 7d | 1h1d7d1yany |
country | string | US | ISO alpha-2 |
language | string | en | BCP-47 |
limit | integer | 20 | 1-100 |
Example
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
}'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);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 20Google Images for a query — URL, source page, dimensions, thumbnail.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
queryrequired | string | — | ≤300 chars |
limit | integer | 20 | 1-100 |
Example
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
}'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);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 20Google Shopping offers for a query — title, merchant, price, rating.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
queryrequired | string | — | ≤300 chars |
country | string | US | ISO alpha-2 |
language | string | en | BCP-47 |
postedWithin | enum | any | 1h1d7d30dany |
limit | integer | 20 | 1-100 |
Example
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
}'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);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 dayPlay Store reviews for up to five apps, by package id or store URL.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-5 items |
country | string | US | ISO alpha-2 |
language | string | en | BCP-47 |
sort | enum | newest | newestrating_highhelpful |
limit | integer | 50 | 1-100 |
Example
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
}'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);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"])