includePricing (default on) and pricingSamples (1–4, default 1).
Pricing costs one extra request per listing and roughly doubles run time
— ~10 min → ~20 min for 1,000 listings. That is unavoidable: a price requires
dates, and dates require another call. Set includePricing: false for an
availability-only scan.
pricingSamples > 1 quotes several lead times (14/30/60/90 days out) and
returns the curve. A property whose 90-day-out rate sits well above its
14-day-out rate is being priced for a season — a signal a single number
cannot carry.
A pricing block per listing with every sample attempted, so the method is
auditable rather than a bare number, plus allDatesUnavailable to separate
"fully booked or inactive listing" from "we failed to get a price". That
distinction matters as soon as nulls enter a market-wide average.
17 parser tests against payloads captured live from Airbnb on 2026-08-12
(listing 1628404036635042929). They cover the cases that fail quietly: Airbnb
stretching a 2-night quote to meet a 5-night minimum (dividing by the wrong
night count overstates the rate 2.5x), discounted vs struck-through prices,
thousands separators, and refusing to read a review count from the wrong
section as a nightly rate.