Track nightly rates across any Airbnb market. Paste a city search URL — get avg, min, max, and median price per listing with full day-by-day breakdown. No login. No API key.
Pay-per-event (PPE) pricing — airbnb-price-market-listing ($0.002) for city scan listings with a price, airbnb-price-calendar-listing ($0.03) for direct listing URLs with calendar data, apify-default-dataset-item ($0) for unpriced rows. Run start is free.
[1.1.0] — 2026-06-01
Added
78-window parallel search discovery — 2n, 5n, and 7n stay lengths × Monday + Friday check-ins × one window per week over the period. Captures listings with high minNights that are invisible to 2-night-only searches.
Parallel page fetching per window — first page is fetched to collect all cursor tokens, then all subsequent pages are fetched in parallel (batch of 8), reducing per-window time by ~4×.
Bounded pass concurrency (PASS_CONCURRENCY = 15) — limits simultaneous open HTTP connections to prevent OOM on large city scans.
Rate-limit retry logic — blocked search windows are collected and retried once after 3 seconds; persistent failures are counted and logged.
priceByMonth — monthly breakdown of avg/min/max nightly rate, deduplicated by check-in week to prevent inflation from overlapping 2n/5n/7n windows.
priceSamples — number of distinct price points collected per listing; used to gate pricingStrategy reporting (requires ≥ 5 samples).
weeklyDiscountPct / monthlyDiscountPct — percentage discount for 7-night and 28-night stays vs 2-night baseline.
pricingStrategy — classifies listings as fixed, dynamic, fixed-with-length-discounts, or dynamic-with-length-discounts when ≥ 5 samples are available.
isBaseline flag on price points — 2-night passes are the baseline for discount calculation; 5n/7n are supplementary.
pricePerNight fallback — when Airbnb returns a "total" price qualifier without a per-night figure, divides by nights computed from URL check-in/checkout dates. Reduced "0-priced" listings from ~25% to <1%.
Fallback to all-price basePrices — when a listing appears only in 5n/7n windows (never a 2n window), all samples are used for priceSamples rather than returning 0.
GPS coordinate extraction (lat, lng) from search result JSON via recursive key search — output ready for mapping workflows.
Market Summary printed to run log after city scans: listings priced, multi-date sample count, sample distribution, and average market price per calendar month.
maxPages: 5 cap on pages per search window — reduces proxy data transfer by ~4× vs previous maxPages: 20.
Changed
Discovery engine rewritten from sequential windows to fully parallel bounded execution.
buildPriceRowFromSearch (city scan mode) replaces Calendar API calls for search-discovered listings — Calendar API returned null prices via residential proxies in this context.
ETA calculation now starts from the processing phase, not the start of the run, for more accurate time estimates.
Log frequency made dynamic — less verbose for fast runs, more detailed for slow ones.
Fixed
Calendar API enrichment for search-discovered listings reverted — resulted in localPriceFormatted: null via proxy; search-price samples are used instead.
priceByMonth aggregation bias — listings appearing in multiple stay-length windows for the same week previously counted multiple times per month; deduplicated by checkin date.
OOM (out-of-memory) on Apify cloud for large city scans — resolved by bounded pass concurrency and batched page fetching.
JSON syntax error in input_schema.json (trailing comma) that blocked local runs.
Removed
Bounding-box (bbox) enrichment for search listings — added per-listing targeted geo-searches, but the runtime cost (~60 extra min for Paris) outweighed the marginal sample gain. Removed in favour of wider stay-length passes.
[1.0.0] — 2026-05-30
Added
Initial release of Airbnb Price Monitor
City market scan via search URL
Direct listing URL input for monitoring specific competitors or own properties
Price stats per listing: avg, min, max, median nightly rate
Full day-by-day prices[] array with date, price, available, minNights — calendar mode
Auto-detection of currency from market location
Three dataset views: overview, flat-prices, full-export
Parallel fetch (10 concurrent) with progress % and ETA