Quick start
Run your first airbnb commands and shape their output.
Once airbnb is on your PATH, complete a place name. suggest reads the
location autocomplete endpoint (best-effort behind the edge):
airbnb suggest paris -n 6 --fields name
╭──────────────────────────╮
│ NAME │
├──────────────────────────┤
│ Paris, France │
│ Paris, TX │
│ Paris, Ontario, Canada │
│ Paris, KY │
│ Paris, Tennessee │
│ Parisian, ... │
╰──────────────────────────╯
Ask for JSON when you want to pipe it:
airbnb suggest paris -o json
[
{
"query": "paris",
"name": "Paris, France",
"place_id": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
"lat": 48.8566,
"lng": 2.3522
}
]
The best-effort surfaces
Every live surface sits behind Airbnb's edge bot manager and may exit 4 from a datacenter. See what anonymous access reaches.
airbnb search "Lake Tahoe" # stay search by place (best-effort)
airbnb room 12345 # one listing by id (best-effort)
airbnb reviews 12345 # a listing's reviews (best-effort)
airbnb calendar 12345 # availability and nightly price (best-effort)
airbnb host show 555 # a host profile (best-effort)
airbnb host listings 555 # the host's public listings (best-effort)
airbnb experiences "Lake Tahoe" # experience search (best-effort)
There is no API to fall back to, so a walled read exits 4 and names the only remedy: run from a residential or mobile network.
Prices need dates
A nightly price only exists for specific dates, so room and search leave the
price empty unless you give --checkin and --checkout:
airbnb room 12345 --checkin 2025-07-01 --checkout 2025-07-05 --adults 2
Shape the output
The same flags work on every command:
airbnb search "Lake Tahoe" --fields name,price,rating
airbnb room 12345 --template '{{.Name}} {{.Price}} {{.Currency}}'
airbnb suggest paris -o jsonl | jq .name
-o takes table, json, jsonl, csv, tsv, url, or raw. Left to
auto, it prints a table to a terminal and JSONL into a pipe, so the same
command reads well by hand and parses cleanly downstream. See
output formats for the full contract.
Resolve a reference offline
The ref commands classify and build Airbnb references with no network call:
airbnb ref id "https://www.airbnb.com/rooms/Cozy-Cabin/12345"
airbnb ref url experience 777
A reference can be a bare numeric id, a /rooms/, /users/show/, or
/experiences/ path, a full Airbnb URL, or a pasted GraphQL global id (the
base64 of <Type>:<digits>).
Serve it instead
The same operations are available over HTTP and to agents over MCP:
airbnb serve --addr :7777 &
curl -s 'localhost:7777/v1/suggest/paris' # NDJSON, one record per line
airbnb mcp # MCP over stdio
What to read next
The guides cover the common jobs, and the CLI reference is the full command tree and flag list.