{"id":"d5819501-9e9c-4f29-9e7e-e2a0d0b6e722","slug":"airbnb-com-api","name":"airbnb.com API","description":"Build an API/scraper that can: 1) Extract comprehensive Airbnb short-term rental listings data including listing title/name, full description, property type (e.g., villa, apartment, house, other), address details (line 1, line 2, city, state/province, country code, postal code), geographic coordinates, and location references; 2) Retrieve detailed pricing information such as nightly price, total price estimates, rates for specified durations of stay, and price sorting capabilities; 3) Capture full availability data including availability calendars for up to 365 days, number of available days, and live status of listings (detecting 404 or inactive listings); 4) Extract detailed capacity and accommodation features including number of bedrooms, bathrooms, beds, guest capacity (adults, children, pets), amenities, features, house rules, tags, and guest-friendly policies (specifically identifying listings that allow outside guests or visitors by parsing 'About This Space', 'House Rules', and 'Safety & Property' sections); 5) Collect host information including host name, ratings, reviews count, recent reviews (with support for filtering by star rating ranges such as 4.0 to 4.6), and host contact details if available; 6) Scrape all images from the listing’s photo gallery by accessing the URL with the query parameter 'modal=PHOTO_TOUR_SCROLLABLE' to ensure full gallery extraction; 7) Extract user-generated content including all reviews and ratings, supporting daily or weekly updates to detect new negative reviews for sales prospecting; 8) Provide booking-related data such as booking links, booking data, and availability dates for newly listed or existing homes; 9) Support filtering and extraction by geographic location including countries (e.g., France, Colombia, Argentina), cities (e.g., Cordoba, Vallda, Sevierville, DC area, Sardinia island), and specific property criteria (e.g., 3 bedroom 3 bath cabins); 10) Enable bulk extraction of listings data including names, descriptions, prices, URLs, images, and location for all or a subset of listings (e.g., first 10 listings); 11) Facilitate property owner use cases by allowing import of their Airbnb listings including property details, photos, pricing, availability calendar, and booking data for external platform uploads; 12) Organize extracted data according to the provided schema with fields for name, description, type, address, images, features, rules, tags, capacity, location, and coordinates; 13) Support sorting and analysis use cases such as housing affordability trends and pricing analysis by extracting number of reviews, average ratings, and property features; 14) Ensure all extracted data is structured, clean, and ready for integration into trip planners, sales prospecting tools, external platforms, or market analysis applications.","front_facing_description":"Search Airbnb stays by destination and dates, then retrieve listing details, availability calendars, and recent guest reviews for a specific listing.","source_url":"https://airbnb.com","is_authenticated":false,"canonical_scraper_id":"ebfc2570-a5db-4d9b-9105-c3439a6586fb","apis":[{"method":"POST","endpoint_name":"search_listings","description":"Full-text location search across Airbnb stay listings. Returns one page of listing summaries (up to items_per_page) with pricing, ratings, images, coordinates and derived attributes. Each listing carries the original display strings (rating, price.total, features) plus typed fields: rating_value (number, null when the listing has no rating yet), review_count (integer), lat/lng, room_type ('entire home', 'private room', 'shared room' or 'hotel room', derived from Airbnb's '<type> in <place>' card label), location_label (the place named in that label - a city, or a neighbourhood when Airbnb shows one; null when the card has no such label), bedrooms/beds/bathrooms parsed from the feature line (null when the feature line omits them, e.g. hotel cards), badges (list of card badges such as 'Guest favorite', 'Superhost', 'Featured hotel'), host_is_superhost (true only when the card shows the Superhost badge; Airbnb shows at most one badge per card, so a superhost whose card shows 'Guest favorite' reads false), total_price and nightly_price as numbers in the requested currency, nights, and image_url (first photo). Guest capacity (max_guests) is not part of Airbnb's search result and is not returned; use get_listing_detail. The envelope also carries currency (the requested currency code), nights (checkout minus checkin when both are given, otherwise the stay length Airbnb priced the page with, or null) and price_context with min/median/max nightly_price and sample_size across the returned page only. min_rating is applied by Airbnb server-side (its minimum review score filter); ratings are displayed rounded so a listing shown as 4.89 can pass a 4.9 threshold. Pagination uses an opaque cursor: pass next_cursor back as cursor; has_next_page is false on the last page. Server-side ordering is fixed (Airbnb relevance).","input_params":{"pets":{"type":"integer","required":false,"description":"Number of pets"},"query":{"type":"string","required":true,"description":"Search location (e.g. 'Paris, France', 'New York', 'Tokyo')","domain":{"kind":"open","generator":{"type":"static","value":"Paris, France"}}},"adults":{"type":"integer","required":false,"description":"Number of adults"},"cursor":{"type":"string","required":false,"description":"Pagination cursor from next_cursor of a previous response"},"checkin":{"type":"string","required":false,"description":"Check-in date in YYYY-MM-DD format","domain":{"kind":"open","generator":{"fmt":"%Y-%m-%d","type":"relative_date","unit":"days","amount":30}}},"infants":{"type":"integer","required":false,"description":"Number of infants"},"checkout":{"type":"string","required":false,"description":"Check-out date in YYYY-MM-DD format","domain":{"kind":"open","generator":{"fmt":"%Y-%m-%d","type":"relative_date","unit":"days","amount":35}}},"children":{"type":"integer","required":false,"description":"Number of children"},"currency":{"type":"string","required":false,"description":"Currency code for pricing (e.g. USD, EUR, GBP)","default":"USD"},"min_beds":{"type":"integer","required":false,"description":"Minimum number of beds"},"max_price":{"type":"integer","required":false,"description":"Maximum price filter"},"min_price":{"type":"integer","required":false,"description":"Minimum price filter"},"min_rating":{"type":"number","required":false,"description":"Minimum average guest rating, 0-5 (e.g. 4.9). Passed to Airbnb's own minimum-review-score filter; values outside 0-5 are rejected."},"min_bedrooms":{"type":"integer","required":false,"description":"Minimum number of bedrooms"},"min_bathrooms":{"type":"integer","required":false,"description":"Minimum number of bathrooms"},"property_type":{"type":"string","required":false,"description":"Property type filter","enum":"PropertyType"},"items_per_page":{"type":"integer","required":false,"description":"Number of results per page","default":18,"domain":{"kind":"open","generator":{"type":"static","value":18}}}},"return_schema":{"type":"object","fields":{"count":"integer - number of listings returned in this page","query":"string - the search location used","nights":"integer or null - stay length the prices cover: checkout minus checkin when both were given, otherwise the length Airbnb priced the page with","filters":"object echoing the applied filters (checkin, checkout, adults, currency, min_rating)","currency":"string - ISO currency code all numeric prices in this response are expressed in (the requested currency)","listings":"array of listing summary objects: listing_id, url, title, subtitle, name, rating (display string), rating_value (number or null), review_count (integer or null), room_type, location_label, coordinates, lat, lng, price (display strings), price_details, currency, total_price (number), nightly_price (number), nights, images, image_url, features, bedrooms, beds, bathrooms (numbers or null), dates, badges (list of strings), host_is_superhost (boolean), payment_messages, host (when present), param_overrides","next_cursor":"string or null - opaque cursor for next page","has_next_page":"boolean - whether more pages exist","price_context":"object with min, median, max (numbers, nightly_price across the returned page, null when no listing had a nightly price) and sample_size (integer, listings that contributed)"},"sample":{"data":{"count":18,"query":"Lisbon, Portugal","nights":5,"filters":{"adults":null,"checkin":null,"checkout":null,"currency":"EUR","min_rating":null},"currency":"EUR","listings":[{"lat":38.7102,"lng":-9.1312,"url":"https://www.airbnb.com/rooms/1373174229965723254","beds":4,"name":"Historical Center - Tagus View","dates":["Jan 16 – 21"],"price":{"total":"€1,320","original":null,"qualifier":"for 5 nights","accessibility_label":"€1,320 for 5 nights"},"title":"Apartment in Lisbon","badges":["Guest favorite"],"images":[{"id":"2122172763","url":"https://a0.muscache.com/im/pictures/hosting/Hosting-U3RheVN1cHBseUxpc3Rpbmc6MTM3MzE3NDIyOTk2NTcyMzI1NA==/original/cca54fef-0ad9-4755-919c-f213290ec3af.jpeg","caption":null}],"nights":5,"rating":"4.89 (99)","bedrooms":3,"currency":"EUR","features":["3 bedrooms","4 beds"],"subtitle":"Historical Center - Tagus View","bathrooms":null,"image_url":"https://a0.muscache.com/im/pictures/hosting/Hosting-U3RheVN1cHBseUxpc3Rpbmc6MTM3MzE3NDIyOTk2NTcyMzI1NA==/original/cca54fef-0ad9-4755-919c-f213290ec3af.jpeg","room_type":"entire home","listing_id":"1373174229965723254","coordinates":{"latitude":38.7102,"longitude":-9.1312},"total_price":1320.0,"rating_label":"4.89 out of 5 average rating,  99 reviews","rating_value":4.89,"review_count":99,"nightly_price":264.0,"price_details":[{"price":"€1,320.00","description":"5 nights x €264.00","original_price":null}],"location_label":"Lisbon","param_overrides":{"adults":1,"checkin":"2027-01-16","checkout":"2027-01-21"},"payment_messages":["Free cancellation"],"host_is_superhost":false}],"next_cursor":"eyJzZWN0aW9uX29mZnNldCI6MCwiaXRlbXNfb2Zmc2V0IjoxOCwidmVyc2lvbiI6MX0=","has_next_page":true,"price_context":{"max":504.0,"min":78.74,"median":235.4,"sample_size":18}},"status":"success"}},"initiates_session":false,"price":3,"verification":{"assertions":[{"path":"$.status","op":"equals","value":"success"},{"path":"$.data.listings","op":"array_min_len","value":1},{"path":"$.data.query","op":"not_null"},{"path":"$.data.currency","op":"not_null"},{"path":"$.data.price_context","op":"type_is","value":"object"}],"empty_is_valid":false,"recipe_version":2}},{"method":"GET","endpoint_name":"get_listing_detail","description":"Fetches the full detail page for a single Airbnb listing by its ID. Returns description, amenities, host profile, house rules, location coordinates, images, capacity (guests/bedrooms/beds/baths), and a reviews summary with category ratings. Requires a valid listing_id from search_listings or get_wishlist. A separate round-trip from search; use when the summary fields are insufficient.","input_params":{"adults":{"type":"integer","required":false,"description":"Number of adults"},"checkin":{"type":"string","required":false,"description":"Check-in date in YYYY-MM-DD format"},"checkout":{"type":"string","required":false,"description":"Check-out date in YYYY-MM-DD format"},"currency":{"type":"string","required":false,"description":"Currency code for pricing","default":"USD"},"listing_id":{"type":"string","required":true,"description":"Airbnb listing ID (from search_listings results[*].listing_id or get_wishlist results[*].listing_id)","domain":{"kind":"derived","generator":{"path":"$.data.listings[*].listing_id","type":"derived","from_endpoint":"get_wishlist"}}}},"return_schema":{"type":"object","fields":{"url":"string - full URL to the listing","host":"object with name, is_superhost, profile_picture_url, reviews_count, rating, years_hosting","name":"string - listing title","images":"array of image objects with id, url, caption","capacity":"object with guests, bedrooms, beds, bathrooms counts","location":"object with title, subtitle, latitude, longitude","policies":"object with house_rules, safety_and_property, cancellation_policy","amenities":"array of amenity objects with title, available, and optional category","highlights":"array of highlight objects with title and subtitle","listing_id":"string - the listing ID","description":"string - cleaned text description","reviews_summary":"object with overall_rating, review_count, is_guest_favorite, category_ratings"}},"initiates_session":false,"price":2,"verification":{"assertions":[{"path":"$.status","op":"equals","value":"success"},{"path":"$.data.listing_id","op":"not_null"},{"path":"$.data.url","op":"not_null"}],"empty_is_valid":false,"recipe_version":1}},{"method":"GET","endpoint_name":"get_listing_reviews","description":"Retrieves guest reviews for a specific listing with offset-based pagination. Each review includes rating, comment text, language, creation date, reviewer profile, and an optional host response. Sorted by recency or relevance. The offset advances by limit on each page; has_more indicates whether additional pages exist.","input_params":{"sort":{"type":"string","required":false,"description":"Sort order for reviews","default":"MOST_RECENT","enum":"ReviewSort"},"limit":{"type":"integer","required":false,"description":"Number of reviews to return per page","default":24,"domain":{"kind":"enum","values":[24],"generator":{"type":"static","value":24}}},"offset":{"type":"integer","required":false,"description":"Offset for pagination","default":0},"currency":{"type":"string","required":false,"description":"Currency code","default":"USD"},"listing_id":{"type":"string","required":true,"description":"Airbnb listing ID (from search_listings results[*].listing_id or get_wishlist results[*].listing_id)","domain":{"kind":"derived","generator":{"path":"$.data.listings[*].listing_id","type":"derived","from_endpoint":"get_wishlist"}}}},"return_schema":{"type":"object","fields":{"count":"integer - number of reviews returned","limit":"integer - requested limit","offset":"integer - current offset","reviews":"array of review objects with id, rating, comments, language, created_at, localized_date, reviewer, and optional host_response","has_more":"boolean - whether more reviews are available","listing_id":"string - the listing ID"}},"initiates_session":false,"price":2,"verification":{"assertions":[{"path":"$.status","op":"equals","value":"success"},{"path":"$.data.listing_id","op":"not_null"},{"path":"$.data.reviews","op":"array_min_len","value":1}],"empty_is_valid":false,"recipe_version":1}},{"method":"GET","endpoint_name":"get_availability_calendar","description":"Returns the availability calendar for a listing across a configurable number of months starting from a given month/year. Each day shows availability status, check-in/check-out eligibility, minimum/maximum night constraints, and formatted local price. Useful for finding bookable windows and understanding pricing patterns.","input_params":{"year":{"type":"integer","required":false,"description":"Starting year. Omitting defaults to current year."},"month":{"type":"integer","required":false,"description":"Starting month (1-12). Omitting defaults to current month."},"currency":{"type":"string","required":false,"description":"Currency code for pricing","default":"USD"},"listing_id":{"type":"string","required":true,"description":"Airbnb listing ID (from search_listings results[*].listing_id or get_wishlist results[*].listing_id)","domain":{"kind":"derived","generator":{"path":"$.data.listings[*].listing_id","type":"derived","from_endpoint":"get_wishlist"}}},"months_count":{"type":"integer","required":false,"description":"Number of months to retrieve (1-12)","default":12,"domain":{"kind":"open","generator":{"type":"static","value":3}}}},"return_schema":{"type":"object","fields":{"listing_id":"string - the listing ID","total_days":"integer - total number of days across all months","available_days":"integer - number of available days","calendar_months":"array of month objects each containing month, year, and days array with date, available, min_nights, max_nights, price","unavailable_days":"integer - number of unavailable days"}},"initiates_session":false,"price":2,"verification":{"assertions":[{"path":"$.status","op":"equals","value":"success"},{"path":"$.data.listing_id","op":"not_null"},{"path":"$.data.calendar_months","op":"array_min_len","value":1}],"empty_is_valid":false,"recipe_version":1}},{"method":"GET","endpoint_name":"get_wishlist","description":"Fetches all saved listings from a shared Airbnb wishlist by its ID and share token (from an invite URL like /wishlists/<id>/invite?share_token=<token>). Returns the wishlist name, total count, and an array of listing summaries including pricing, ratings, coordinates, capacity details, and thumbnail images. Pricing reflects the wishlist's saved dates by default; pass currency to change the price currency. The checkin, checkout, and adults parameters are accepted but pricing is determined by the wishlist's saved date range.","input_params":{"adults":{"type":"integer","required":false,"description":"Number of adults"},"checkin":{"type":"string","required":false,"description":"Check-in date in YYYY-MM-DD format"},"checkout":{"type":"string","required":false,"description":"Check-out date in YYYY-MM-DD format"},"currency":{"type":"string","required":false,"description":"Currency code for pricing (e.g. USD, EUR, GBP)","default":"USD"},"share_token":{"type":"string","required":true,"description":"Share token from the wishlist invite URL (e.g. '2c51a6c5-b43b-4d22-bcbf-24a1a5070701')","domain":{"kind":"open","generator":{"type":"static","value":"2c51a6c5-b43b-4d22-bcbf-24a1a5070701"}}},"wishlist_id":{"type":"string","required":true,"description":"Airbnb wishlist ID (the numeric ID from the invite URL, e.g. '2178650004')","domain":{"kind":"open","generator":{"type":"static","value":"2178650004"}}}},"return_schema":{"type":"object","fields":{"listings":"array of listing objects with listing_id, url, name, subtitle, city, property_type, latitude, longitude, rating, badges, is_guest_favorite, price (object with total, nightly, qualifier, accessibility_label, currency, available), beds, bedrooms, bathrooms, features, thumbnail_url, and saved_dates","total_count":"integer - number of listings in the wishlist","wishlist_id":"string - the wishlist ID","wishlist_name":"string - name of the wishlist"}},"initiates_session":false,"price":1,"verification":{"assertions":[{"path":"$.status","op":"equals","value":"success"},{"path":"$.data.wishlist_name","op":"not_null"},{"path":"$.data.listings","op":"array_min_len","value":1}],"empty_is_valid":false,"recipe_version":1}}],"sample_inputs":{"get_wishlist":{"share_token":"2c51a6c5-b43b-4d22-bcbf-24a1a5070701","wishlist_id":"2178650004"},"search_listings":{"query":"Lisbon, Portugal","adults":"2","checkin":"2026-10-10","checkout":"2026-10-15","currency":"EUR","property_type":"hotel"},"get_listing_detail":{"listing_id":"1355400877925563818"},"get_listing_reviews":{"limit":"24","listing_id":"1355400877925563818"},"get_availability_calendar":{"listing_id":"1355400877925563818","months_count":"3"}},"prefill_inputs":{"search_listings":{"query":"Paris, France","checkin":"2026-12-01","checkout":"2026-12-06","items_per_page":"18"},"get_listing_reviews":{"limit":"24"},"get_availability_calendar":{"months_count":"3"},"get_wishlist":{"share_token":"2c51a6c5-b43b-4d22-bcbf-24a1a5070701","wishlist_id":"2178650004"}},"last_verified_at":"2026-10-27T07:03:52.911438+00:00","endpoint_health":[{"endpoint_name":"get_wishlist","status":"healthy","last_checked_at":"2026-10-27T07:03:52.911438+00:00","last_verified_at":"2026-10-27T07:03:52.911438+00:00","recent_runs":[{"at":"2026-10-27T07:03:52.911438+00:00","status":"healthy"},{"at":"2026-10-27T06:02:25.219045+00:00","status":"healthy"},{"at":"2026-10-20T05:04:25.295984+00:00","status":"healthy"},{"at":"2026-10-13T05:02:52.872949+00:00","status":"healthy"},{"at":"2026-10-06T05:02:25.257848+00:00","status":"healthy"}]},{"endpoint_name":"get_availability_calendar","status":"healthy","last_checked_at":"2026-10-27T07:03:52.911438+00:00","last_verified_at":"2026-10-27T07:03:52.911438+00:00","recent_runs":[{"at":"2026-10-27T07:03:52.911438+00:00","status":"healthy"},{"at":"2026-10-27T06:02:25.219045+00:00","status":"healthy"},{"at":"2026-10-20T05:04:25.295984+00:00","status":"healthy"},{"at":"2026-10-13T05:02:52.872949+00:00","status":"healthy"},{"at":"2026-10-06T05:02:25.257848+00:00","status":"healthy"}]},{"endpoint_name":"get_listing_detail","status":"healthy","last_checked_at":"2026-10-27T07:03:52.911438+00:00","last_verified_at":"2026-10-27T07:03:52.911438+00:00","recent_runs":[{"at":"2026-10-27T07:03:52.911438+00:00","status":"healthy"},{"at":"2026-10-27T06:02:25.219045+00:00","status":"blocked"},{"at":"2026-10-20T05:04:25.295984+00:00","status":"healthy"},{"at":"2026-10-13T05:02:52.872949+00:00","status":"healthy"},{"at":"2026-10-06T05:02:25.257848+00:00","status":"healthy"}]},{"endpoint_name":"get_listing_reviews","status":"healthy","last_checked_at":"2026-10-27T07:03:52.911438+00:00","last_verified_at":"2026-10-27T07:03:52.911438+00:00","recent_runs":[{"at":"2026-10-27T07:03:52.911438+00:00","status":"healthy"},{"at":"2026-10-27T06:02:25.219045+00:00","status":"blocked"},{"at":"2026-10-20T05:04:25.295984+00:00","status":"healthy"},{"at":"2026-10-13T05:02:52.872949+00:00","status":"healthy"},{"at":"2026-10-06T05:02:25.257848+00:00","status":"healthy"}]}],"sdk_usage_example":null,"sdk_delivery_state":"absent","summary":"Search and retrieve detailed information about Airbnb listings including availability, reviews, and pricing","updated_at":"2026-09-10T22:35:50.728231+00:00","user_variants":[],"latest_version":11,"user_status":null,"user_scraper_id":null,"contributes_to_marketplace":true,"pinned_version":null,"seo_content":{"faqs":[{"a":"Airbnb does not offer a public developer API for general listing search or detail access. They have historically provided limited partner integrations, but there is no self-serve API portal open to the public as of mid-2025.","q":"Does Airbnb have an official developer API?"},{"a":"`search_listings` returns summary-level data: price, rating, a few images, and coordinates. `get_listing_detail` adds the full `amenities` array with per-amenity `available` flags and categories, the `policies` object (house rules, safety info, cancellation policy), a complete `host` profile with `years_hosting` and `reviews_count`, and a `highlights` array. It requires a `listing_id` from a prior search or wishlist call.","q":"What does `get_listing_detail` return beyond what `search_listings` provides?"},{"a":"`search_listings` uses cursor-based pagination: the response includes a `next_cursor` string and a `has_next_page` boolean. Pass `next_cursor` as the `cursor` parameter on the next call. `get_listing_reviews` uses offset-based pagination: increment `offset` by your `limit` value and check `has_more` to continue. The two schemes are not interchangeable.","q":"How does pagination work across endpoints?"},{"a":"No contact details or messaging data are exposed. The API covers publicly visible listing data: amenities, policies, images, availability, and reviews. You can fork this API on Parse and revise it to add an endpoint targeting any additional public listing metadata not currently returned.","q":"Does the API return host contact details or message-thread data?"},{"a":"Not currently. Pricing is returned as a formatted nightly or per-day figure in search results and the availability calendar, without a fee breakdown. You can fork the API on Parse and revise it to add a dedicated pricing-breakdown endpoint that targets the detailed price display for a listing and date range.","q":"Can I get pricing broken down by fees (cleaning fee, service fee) rather than a nightly total?"}],"keywords":["airbnb listings api","airbnb availability calendar api","airbnb reviews api","short term rental data api","vacation rental listing search api","airbnb host profile api","airbnb amenities data","airbnb pricing api by date","airbnb wishlist api","airbnb listing detail endpoint","airbnb guest count filter api","rental property availability json","airbnb cancellation policy api","airbnb superhost data"],"use_cases":["Build a price-comparison tool for short-term rentals using `search_listings` price and rating fields across multiple destinations.","Generate a listing intelligence report by combining `get_listing_detail` amenities and cancellation policy with `get_listing_reviews` sentiment.","Track nightly price fluctuations over time using `get_availability_calendar` day-level price fields.","Find available weekend windows for a listing without checking each date manually via `get_availability_calendar` `available` flags.","Sync a shared trip wishlist to an internal planner app using `get_wishlist` listing coordinates and capacity data.","Analyze host quality signals by aggregating `superhost` status, `years_hosting`, and `rating` fields from `get_listing_detail`.","Filter family-friendly listings by passing `children` and `infants` guest counts into `search_listings` and checking `capacity.bedrooms`."],"meta_title":"Airbnb API – Listings, Availability & Reviews","generated_at":"2026-09-01T00:54:11.145285+00:00","lead_paragraph":"This API covers 5 endpoints for querying Airbnb stay data: search listings by destination with date and guest filters via `search_listings`, retrieve full listing details including amenities, host profile, and cancellation policy via `get_listing_detail`, and pull per-day availability across up to 12 months via `get_availability_calendar`. Responses include coordinates, structured pricing, review summaries, and host metadata.","schema_version":2,"meta_description":"Search Airbnb stays, fetch listing details, retrieve availability calendars, and pull guest reviews via a structured JSON API. 5 endpoints.","primary_category":"travel","long_description_md":"## Search and Listing Detail\n\n`search_listings` accepts a free-text `query` (e.g. `\"Paris, France\"`) plus optional `checkin`/`checkout` dates, guest counts broken down by `adults`, `children`, `infants`, and `pets`, and returns an array of listing summaries with pricing, ratings, images, and coordinates. Pagination is cursor-based: consume `next_cursor` from one response and pass it as `cursor` on the next call; `has_next_page` tells you whether to continue. `get_listing_detail` deepens any result: given a `listing_id`, it returns the full listing `name`, `description`, a structured `capacity` object (`guests`, `bedrooms`, `beds`, `bathrooms`), a `location` object with `latitude`/`longitude`, a flat `amenities` array with `available` flags and optional `category`, and a `policies` object covering `house_rules`, `safety_and_property`, and `cancellation_policy`.\n\n## Reviews and Availability\n\n`get_listing_reviews` uses offset-based pagination (`offset` + `limit`) against a specific `listing_id`. Each review object carries `rating`, `comments`, `language`, `created_at`, a `reviewer` sub-object, and an optional `host_response`. A `has_more` boolean drives continuation. `get_availability_calendar` maps out day-level availability for 1–12 months starting from a given `month`/`year`. Each day entry exposes `available`, `min_nights`, `max_nights`, and a formatted `price`, letting you scan for bookable windows without hitting the listing detail endpoint repeatedly.\n\n## Wishlists\n\n`get_wishlist` takes a `wishlist_id` and `share_token` (both found in an Airbnb wishlist invite URL) and returns the wishlist `name`, `total_count`, and an array of listing summaries with the same coordinate, rating, and capacity fields as search results. Date and currency parameters can be passed to include context-specific pricing in the response.","generated_with_model":"global.anthropic.claude-sonnet-4-6","secondary_categories":["real_estate","reviews_ratings"]},"primary_category":"travel","secondary_categories":["real_estate","reviews_ratings"],"access_requirements":[]}