Install
openclaw skills install @nikhonit/airbnb-fullComplete Airbnb stay data toolkit via StayingAPI.com — id/URL/address lookup, sub-resources, listing search with presets, async batch jobs, job polling, webhook management, and account/usage. Plus the hosted MCP server's five tools.
openclaw skills install @nikhonit/airbnb-fullComplete Airbnb stay data toolkit via StayingAPI.com. Use when the user explicitly asks about an Airbnb listing, its price, reviews or availability, listings to book in a place, or bulk/automated stay-data jobs.
Each tool call consumes Staying API credits, so this skill activates only when the user's request is genuinely about Airbnb stay data — not when a listing link or place name merely appears in passing.
DO use when the user:
lookup_stay_by_urllookup_stay_by_id / lookup_stay_by_addressget_stay_*search_stays (or search_superhost / search_instant_book / search_luxury)batch_stayscreate_webhookget_account / get_usageDo NOT use when:
When intent is ambiguous, ask the user to confirm before calling a tool. These tools cost credits and return large records.
All tools return a Python dict — the API response on success, or {"error": ..., "detail": ...} on failure. The get_stay_* sub-resource tools accept stay_id (cheapest), url, or address.
lookup_stay_by_id(stay_id, fields=None) — 1 credit. Full canonical Stay record.lookup_stay_by_url(url, fields=None) — 1 credit. Same, from an airbnb.com/rooms/<id> URL.lookup_stay_by_address(address, fields=None) — 3 credits. Resolve from a street address.get_stay_photos(...) — photo galleryget_stay_reviews(...) — reviews + rating breakdownget_stay_host(...) — host profileget_stay_amenities(...) — amenities by categoryget_stay_availability(...) — 12-month availability calendarget_stay_pricing(...) — nightly rate, fees, currencyget_stay_location(...) — coordinates and addressget_stay_rating(...) — star rating and review-count summarysearch_stays(location=None, search_urls=None, check_in=None, check_out=None, price_min=None, price_max=None, min_beds=None, min_bedrooms=None, min_bathrooms=None, adults=None, children=None, infants=None, pets=None, currency=None, locale=None, max_items=50, fields=None) — 1 credit per result, max_items up to 240.search_superhost(...) / search_instant_book(...) / search_luxury(...) — same filters, preset segments.search_stays_with_details(...) — async; returns a job envelope (poll with get_job / get_job_results).batch_stays(targets, webhook_id=None) — async. targets is a list of ids, URLs, and/or addresses (up to 500). Returns a job envelope.list_jobs(status=None, type=None, since=None, limit=50, offset=0) — list async jobs.get_job(job_id) — job status.get_job_results(job_id, limit=50, offset=0, format="json") — paginated results (json | csv | ndjson).create_webhook(url, events, description=None) — events from: job.queued, job.running, job.succeeded, job.failed, stay.cached. Deliveries are HMAC-signed.list_webhooks() · get_webhook(webhook_id) · delete_webhook(webhook_id) · get_webhook_deliveries(webhook_id)get_account() — account, plan, and credit balance (GET /v1/me).get_usage(since=None, limit=50) — recent metered calls.The hosted MCP server (https://api.stayingapi.com/mcp, streamable-HTTP, Bearer sk_... or OAuth 2.1 PKCE scope mcp:access) exposes five tools — an alternative to this skill: lookup_stay_by_id, lookup_stay_by_url, search_stays, get_stay_photos, get_stay_reviews.
Set STAYINGAPI_KEY to your Staying API key. Keys are sk_... strings.
export STAYINGAPI_KEY="sk_..."
Get a free key with 100 credits at https://stayingapi.com/app/keys — no card required.
| Plan | Price | Credits | Rate limit |
|---|---|---|---|
| Free | $0 | 100 (one-time) | 20/min |
| Monthly | $5/mo | 400/month | 200/min |
| Annual | $54/yr | 5,000/year | 300/min |
| Enterprise | Custom | Custom | 1,500/min |
One credit per stay record returned. Search bills 1 credit per result; by-address and address batch entries weigh 3. Failed calls (4xx/5xx) do not consume credits. Credits roll forward and don't expire.
All functions return a Python dict. On success it contains the API response. On failure it contains an error key:
{"error": "auth", ...} — STAYINGAPI_KEY is missing or invalid{"error": "HTTP 404", ...} — listing or job not found{"error": "HTTP 429", ...} — rate-limited; back off and retry{"error": "network", ...} — DNS/connection failureStaying API is an independent service and is not affiliated with, endorsed by, or sponsored by Airbnb, Inc. "Airbnb" is a registered trademark of Airbnb, Inc.