Extract availability calendars, occupancy rates, and pricing from any Airbnb market. Paste a city search URL to scan hundreds of listings at once, or monitor specific properties. Outputs per-listing occupancy %, blocked days, price / night, full daily calendar. Built for STR managers and investors.
All notable changes to this Actor are documented here.
Format follows Keep a Changelog .
[1.2] — 2026-05-30
Apify actor version: 1.2
Added
Listing metadata from search results — new output fields extracted from Airbnb search JSON without extra API calls: listingName, propertyType, city, rooms, beds, bathrooms, searchPrice, searchPriceQualifier, rating.
sourceUrl and searchRank on all rows from search URL discovery.
normalizeSearchUrl() helper — forces airbnb.com domain and locale=en so metadata is always in English regardless of input URL locale.
Changed
Parallel calendar fetch — Phase 2 now runs 10 listings concurrently (was sequential); typical city scan ~7× faster.
Input simplified — listingUrls + locationQuery + maxListings unified into a single urls field that accepts both listing URLs and search URLs. currency and verboseLogs removed from Console UI (still readable via API/JSON).
monthsAhead is now a select dropdown (1, 2, 3, 6, 12 months) instead of a free-number field.
ID extraction — demandStayListing.id now decoded from base64; ID regex relaxed to ^\d{7,19}$ to capture 19-digit Airbnb IDs.
dataset_schema.json overview view now includes all metadata fields.
Pagination was stuck on page 1 — switched paginateSearch from CheerioCrawler to direct fetch to correctly receive paginationInfo.pageCursors[] array (matches airbnb-professional-host-scraper approach).
searchDiscover.js syntax error (missing closing brace) that caused SyntaxError: Unexpected token 'export' on Node 22.
[1.1] — 2026-05-29
Apify actor version: 1.0 (Store)
Added
Location discovery mode — pass a search URL to discover all listings in a city market across multiple date-range passes; paginate up to 15+ pages per pass.