Auth paths
session ●
agent-browser session (--session <key> --restore); human logs in once in a headed window. Fetch ops run inside the page context via eval because Airbnb's SCA airlock state is not reproducible from exported cookies.
ttl: 24h
credentials: AB_AIRBNB_EMAIL, AB_AIRBNB_PASSWORD
form
⛔ REFUSED: Automated form login risks Airbnb fraud flags; use the headed browser handoff instead.
Operations
| Op | Kind | Risk | Requires | Description |
|---|---|---|---|---|
| airbnb.com/reservations | dom | read-only | sca-free | Upcoming/Completed/Canceled reservations with guest, party, check-in/out, confirmation code and total payout. SCA-free. verified 2026-08-14 input{
"type": "object",
"properties": {
"tab": {
"type": "string",
"enum": [
"Upcoming",
"Completed",
"Canceled"
]
}
}
} output{
"type": "object",
"properties": {
"status": {
"type": [
"string",
"null"
]
},
"guest": {
"type": [
"string",
"null"
]
},
"party": {
"type": [
"string",
"null"
]
},
"phone": {
"type": [
"string",
"null"
]
},
"checkIn": {
"type": [
"string",
"null"
]
},
"checkOut": {
"type": [
"string",
"null"
]
},
"bookedAt": {
"type": [
"string",
"null"
]
},
"listing": {
"type": [
"string",
"null"
]
},
"confirmationCode": {
"type": [
"string",
"null"
]
},
"payout": {
"type": [
"string",
"null"
]
}
}
} |
| airbnb.com/listing-earnings | graphql | read-only | sca-free | FetchSegmentedHostTransactionStats — gross earnings, adjustments, tax withholding, payout total per listing. SCA-free. verified 2026-08-14 input{
"type": "object",
"properties": {
"months": {
"type": "integer",
"minimum": 1,
"maximum": 24,
"default": 12
}
}
} output{
"type": "object",
"properties": {
"listingId": {
"type": "string"
},
"label": {
"type": "string"
},
"grossEarnings": {
"type": [
"string",
"null"
]
},
"grossEarningsMicros": {
"type": [
"string",
"null"
]
},
"taxWithholding": {
"type": [
"string",
"null"
]
},
"adjustments": {
"type": [
"string",
"null"
]
},
"payoutTotal": {
"type": [
"string",
"null"
]
}
}
} |
| airbnb.com/booking-stats | graphql | read-only | sca-free | HostBookingStats — nights/occupancy aggregated and by listing for a window. SCA-free. verified 2026-08-14 input{
"type": "object",
"properties": {
"months": {
"type": "integer",
"minimum": 1,
"maximum": 24,
"default": 12
}
}
} output{
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": [
"string",
"null"
]
}
}
} |
| airbnb.com/payouts | graphql | read-only | sca-airlock sca-gated | FetchPayoutTransactions — row-level payouts with guest names and stay details. Gated by Airbnb's payments SCA airlock (OTP + security question); a human must complete it in the browser session once. unverified input{
"type": "object",
"properties": {
"months": {
"type": "integer",
"minimum": 1,
"maximum": 24,
"default": 12
}
}
} output{
"type": "object",
"properties": {
"confirmationCode": {
"type": "string"
},
"guest": {
"type": [
"string",
"null"
]
},
"party": {
"type": [
"string",
"null"
]
},
"checkIn": {
"type": [
"string",
"null"
]
},
"checkOut": {
"type": [
"string",
"null"
]
},
"listing": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"payout": {
"type": [
"string",
"null"
]
}
}
} |
Raw artifacts
The manifest is the discovery record — the schema, the docs, and the search index in one file. manifest.json · recipe.ts · README.md