[ docs ]Places & travel
Google Maps
Measured Google Maps data, one operation per call. Places are named by a Google Maps URL carrying a place id or cid, or by a bare ChIJ… place id. Every fetch adds rating, review count and live occupancy to the place's history. ops: places (full cards for up to ten places — rating and star breakdown, review keywords, price range, phone, website, emails and socials, full address and coordinates, opening and special hours, popular times, attributes, owner posts, menu and reservation links, closed/unclaimed flags), search (a query in a location with minRating and website filters; every hit a full card), reviews (reviews for up to ten places — text, stars, date, reviewer with local-guide flag, owner response; four sort orders), history (stored rating and review-count series for places already held, free). 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_mapsplaces
from 4 credits · fresh for 3 daysFull cards for up to ten places by Maps URL (place id or cid) — rating and breakdown, review keywords, contact, address, hours, popular times, attributes, socials, owner posts.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-10 items |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/google_maps \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "places",
"subjects": [
"example"
]
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/google_maps", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "places",
"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_maps",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "places",
"subjects": [
"example"
]
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])search
from 39 credits for 10Places for a keyword in a location — every hit a full card.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
queryrequired | string | — | ≤300 chars |
locationrequired | string | — | ≤120 chars |
minRating | enum | — | 22.533.544.5 |
website◆ | enum | any | anywithwithout |
limit | integer | 10 | 1-100 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/google_maps \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "search",
"query": "example",
"location": "New York"
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/google_maps", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "search",
"query": "example",
"location": "New York"
},
"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_maps",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "search",
"query": "example",
"location": "New York"
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])reviews
from 7 credits for 25 · fresh for 3 daysReviews for up to ten places — text, stars, date, reviewer, owner response; sorted newest, most relevant, highest or lowest.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-10 items |
sort | enum | newest | newestrelevancerating_highrating_low |
limit | integer | 25 | 1-100 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/google_maps \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "reviews",
"subjects": [
"example"
]
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/google_maps", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "reviews",
"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_maps",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "reviews",
"subjects": [
"example"
]
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])history
free · reads what is heldStored rating/review-count series of places already held — free.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-10 items |
metric | enum | rating | ratingreviewslive_occupancy_percent |
days | integer | 90 | 1-730 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/google_maps \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "history",
"subjects": [
"example"
]
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/google_maps", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "history",
"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_maps",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "history",
"subjects": [
"example"
]
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])