Endpoint
/v1/airbnb/search-stayslimited capacity3 creditsLimited capacity: this operation currently relies on small shared monthly allowances. Availability can end before your account credits are used. Contact support before scheduling or bulk use. Allowances are shared across customers and related operations; this is not a per-account entitlement.
Parameters
Query parameters
| Name | Required | Description | Example |
|---|---|---|---|
location | no | A city, area or address; resolved to a place once and remembered (or pass place_id) | Lisbon |
place_id | no | A place id from airbnb/locations | |
checkin | no | Check-in date, YYYY-MM-DD (with checkout) | 2026-10-10 |
checkout | no | Check-out date, YYYY-MM-DD (with checkin) | 2026-10-14 |
adults | no | Adults, up to 16 | 2 |
children | no | Children, up to 15 | |
infants | no | Infants, up to 5 | |
pets | no | Pets, up to 5 | |
min_price | no | Minimum price per night in the currency | |
max_price | no | Maximum price per night in the currency | |
type_of_place | no | The site's type-of-place filter | |
property_type | no | The site's property-type filter | |
bedrooms | no | Minimum bedrooms | |
beds | no | Minimum beds | |
bathrooms | no | Minimum bathrooms | |
amenities | no | The site's amenity ids, separated by commas | |
booking_options | no | The site's booking-option filters | |
host_language | no | The site's host-language filter | |
top_tier | no | The site's top-tier-stays filter | |
total_price | no | Show the trip total instead of the nightly price | false |
limit | no | Results per page, 1 to 50 | 16 |
cursor | no | The cursor from the previous page | |
currency | no | Three-letter currency code | GBP |
language | no | Language code for the site's text | |
Examples
Make the request
curl "https://www.monocrawl.com/v1/airbnb/search-stays" \ -H "x-api-key: mn_your_key_here"
TypeScript
const key = process.env.MONOCRAWL_API_KEY;
if (!key) throw new Error('Set MONOCRAWL_API_KEY on your server.');
const res = await fetch(
"https://www.monocrawl.com/v1/airbnb/search-stays",
{ headers: { "x-api-key": key } },
);
const body = await res.json();
if (!body.success) {
// one error shape for every endpoint — see /docs/errors
throw new Error(`${body.error.type}: ${body.error.message}`);
}
console.log(body.data, "credits left:", body.credits_remaining);Python
import os
import requests
res = requests.get(
"https://www.monocrawl.com/v1/airbnb/search-stays",
headers={"x-api-key": os.environ["MONOCRAWL_API_KEY"]},
timeout=60,
)
body = res.json()
if not body["success"]:
# one error shape for every endpoint — see /docs/errors
raise RuntimeError(f"{body['error']['type']}: {body['error']['message']}")
print(body["data"], "credits left:", body["credits_remaining"])Response
One envelope across every endpoint
This illustrative envelope is not a live response or a payload schema. Variable-cost operations may settle a charge different from the list price below. A successful response puts the platform payload in data and reports the exact credits used, remaining balance, request id and cache status beside it.
{
"success": true,
"platform": "airbnb",
"endpoint": "/v1/airbnb/search-stays",
"data": { "…": "platform-specific fields" },
"credits_used": 3,
"credits_remaining": 99,
"request_id": "req_…",
"cached": false
}Failures return the shared typed error envelope and cost nothing. Response contract · Error reference