Airbnb API

Airbnb stay search

Stays in a place for a trip: name, city, room type, rating and review count, position, the nightly price and the trip total as the site shows them, photos, instant booking and the host with their rating and years hosting. Pages by cursor.

Endpoint

GET/v1/airbnb/search-stayslimited capacity3 credits
Try in Playground

Limited 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

NameRequiredDescriptionExample
locationnoA city, area or address; resolved to a place once and remembered (or pass place_id)Lisbon
place_idnoA place id from airbnb/locations
checkinnoCheck-in date, YYYY-MM-DD (with checkout)2026-10-10
checkoutnoCheck-out date, YYYY-MM-DD (with checkin)2026-10-14
adultsnoAdults, up to 162
childrennoChildren, up to 15
infantsnoInfants, up to 5
petsnoPets, up to 5
min_pricenoMinimum price per night in the currency
max_pricenoMaximum price per night in the currency
type_of_placenoThe site's type-of-place filter
property_typenoThe site's property-type filter
bedroomsnoMinimum bedrooms
bedsnoMinimum beds
bathroomsnoMinimum bathrooms
amenitiesnoThe site's amenity ids, separated by commas
booking_optionsnoThe site's booking-option filters
host_languagenoThe site's host-language filter
top_tiernoThe site's top-tier-stays filter
total_pricenoShow the trip total instead of the nightly pricefalse
limitnoResults per page, 1 to 5016
cursornoThe cursor from the previous page
currencynoThree-letter currency codeGBP
languagenoLanguage code for the site's text

Examples

Make the request

curl
curl "https://www.monocrawl.com/v1/airbnb/search-stays" \
  -H "x-api-key: mn_your_key_here"
TypeScript
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
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.

200 · application/json
{
  "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

First call in under a minute

150 free credits and a ready-made key the moment you sign up. No card.