[ docs ]Places & travel
Airbnb
Measured Airbnb data, one operation per call. Listings are named by URL or room id. A `stay` (checkIn, checkOut, adults, children, infants, pets, currency) is part of every price — without dates a card comes back unpriced — and every priced fetch adds a point to the listing's history tagged with that stay. ops: listings (full cards for up to ten listings — nightly and total price, availability, overall and per-category ratings, review count, amenities, house rules, cancellation policy, host with superhost flag), reviews (reviews for up to ten listings — text, rating, date, host response), history (stored price/rating series for listings 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/airbnblistings
from 2 credits · fresh for 12 hoursFull cards for up to ten listings by URL or room id, priced for a stay — nightly and total price, availability, ratings by category, amenities, house rules, cancellation policy, host.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-10 items |
stay | object | all defaults | — |
stay.checkIn | string | — | YYYY-MM-DD |
stay.checkOut | string | — | YYYY-MM-DD |
stay.adults | integer | 2 | 1-16 |
stay.children | integer | 0 | 0-10 |
stay.infants | integer | 0 | 0-5 |
stay.pets | integer | 0 | 0-5 |
stay.currency | string | USD | ISO 4217 |
stay.locale | string | en-US | ≤10 chars |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/airbnb \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "listings",
"subjects": [
"example"
]
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/airbnb", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "listings",
"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/airbnb",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "listings",
"subjects": [
"example"
]
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])reviews
from 49 credits for 25 · fresh for 3 daysReviews for up to ten listings — text, rating, date, host response.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-10 items |
locale◆ | string | en-US | ≤10 chars |
limit | integer | 25 | 1-100 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/airbnb \
-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/airbnb", {
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/airbnb",
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 price/rating series of listings already held — free.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-10 items |
metric | enum | price_per_night | price_per_nighttotal_pricerating_overallreviews_count |
days | integer | 90 | 1-730 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/airbnb \
-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/airbnb", {
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/airbnb",
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"])