Airbnb Full Year Price Tracker Scraper
Pricing
$15.99/month + usage
Airbnb Full Year Price Tracker Scraper
Track Airbnb prices for an entire year from any listing. This actor collects daily rates, seasonal changes, availability, and minimum stay rules. Ideal for revenue optimization, competitive analysis, and long term pricing research.
Pricing
$15.99/month + usage
Rating
0.0
(0)
Developer
Scraper Engine
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
๐ ๐ Airbnb Full-Year Price Tracker PLUS
Track real, per-date Airbnb prices and availability across any date range, with pre-computed monthly aggregates, occupancy and ADR. This is an Airbnb price scraper / Airbnb availability scraper / Airbnb calendar scraper for market research, revenue management, dynamic pricing, and short-term-rental (STR) analytics.
Unlike price trackers that request a single date and repeat it, this actor fetches the listing's availability calendar once (up to 12 months) and then makes one price request per genuinely bookable date. Every price row is a real, independent quote โ nothing is cloned or fabricated.
What it does
For each listing (Airbnb room URL, numeric listing ID, or search keyword):
- One metadata call โ title, host + host profile URL, property/room type, home tier, superhost flag, coordinates (lat/lng), ratings (all sub-scores), guest capacity, bedrooms/beds/baths, full amenities list, full photo gallery, description, cancellation policy.
- One availability-calendar call (
PdpAvailabilityCalendar) โ real per-dateavailable,availableForCheckin,availableForCheckout,bookable,minNights,maxNightsfor up to 12 months. - One price request per bookable date (
StaysPdpSections) โ the real nightly rate for that date (check-out = date + that date's minimum nights). Non-bookable dates are skipped (no request, no charge). - Derived analytics, computed locally from the real priced dates.
Output rows
Two row types, tagged with type and isChild:
| type | isChild | one per | charged |
|---|---|---|---|
listing-summary | false | listing | no |
priced-date | true | bookable date | yes |
unavailable-date | true | blocked date (only if onlyBookable = false) | no |
priced-date fields: Check-In / Check-Out Date, Nights, Day Of Week, Is Weekend, Nightly Price (numeric), Currency, Base Total, Cleaning Fee, Service Fee, Taxes, Total Price, Strike Through Price, Available / Available For Checkin / Checkout, Bookable, Min/Max Nights, Price Details.
listing-summary fields: identity + host (Host ID, Host Profile URL), Room Type, Home Tier, Is Superhost, Listing Lat/Lng, all ratings, Bedrooms/Beds/Bathrooms, Guest Capacity, Photos + Photo Count, Amenities + Amenity Count, Description, plus the derived analytics:
- Tracked / Bookable / Unavailable / Priced Days
- Occupancy % (approx) โ
unavailableDays รท trackedDays ร 100 - ADR (avg nightly), Min / Max / Median Nightly Price, Price Std Dev
- Weekend Avg vs Weekday Avg price
- Cheapest / Most Expensive Date + Price
- Monthly Aggregates โ per month: avg / min / max / median nightly price + priced-day count
Every priced-date and the listing-summary are also mirrored to a per-run child dataset named calendar-<runId>.
Occupancy caveat (honest labeling)
Airbnb's public calendar cannot distinguish a host-blocked date from a guest-booked one โ both appear as available: false. Occupancy % is therefore a forward-calendar approximation of unavailable share, not a verified booking rate. It is labeled Occupancy % (approx) for this reason.
Charging model (pay-per-event)
row_result is charged once per real priced-date row only.
listing-summaryrows are not charged.unavailable-daterows are not charged.- Dates that are not bookable are never requested and never charged.
This replaces the previous behaviour where a single price was cloned across N days and each cloned row was billed. You now pay only for genuine, independent per-date price quotes. (The owner must configure the row_result event under Console โ Publication โ Monetization for charges to apply; until then charge calls are a logged no-op.)
Input summary
| Field | Meaning |
|---|---|
startUrls | Airbnb room URLs, listing IDs, or search keywords |
startDate / endDate | Date range to track (absolute YYYY-MM-DD or relative like 7 days) |
numberOfDays | Used only when endDate is empty |
nightsPerStay | 0 = auto (each date's minimum nights); otherwise fixed |
onlyBookable | ON = only priced bookable dates; OFF = also emit blocked dates (null price) |
dayFilter | all / weekends / weekdays |
maxNightlyPrice | Drop dates above this nightly ceiling (0 = none) |
adults / children / infants / pets | Guest configuration |
currency | Any Airbnb-supported ISO code (free text) |
includeAmenities / includePhotos | Toggle the extra metadata sections |
maxListings | Listings per keyword search |
maxPriceRequestsPerListing | Cost-control cap on price requests (0 = none) |
requestThrottleSeconds | Delay between price requests |
proxyConfiguration | Apify Proxy; residential is reserved for the price loop |
Example input
{"startUrls": ["https://www.airbnb.com/rooms/7431972"],"startDate": "2026-08-01","numberOfDays": 30,"nightsPerStay": 0,"onlyBookable": true,"currency": "USD","proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Example priced-date output
{"type": "priced-date","isChild": true,"Listing ID": "7431972","Check-In Date": "2026-09-08","Check-Out Date": "2026-09-09","Nights": 1,"Is Weekend": false,"Nightly Price": 212.46,"Currency": "USD","Cleaning Fee": 45.0,"Total Price": 289.0,"Available": true,"Bookable": true,"Min Nights": 1}
Notes on scope
- Deferred (honest): individual reviews and full host-profile detail (response rate / verifications) are not fetched โ they require dedicated GraphQL operations and are out of scope for this pricing-focused actor. No dead toggles are shipped for them.
- Fragility: Airbnb's internal API and persisted-query hashes rotate periodically; the actor carries vetted hashes plus a last-resort discovery path.
Legal
Collects only publicly available listing data. Respect Airbnb's Terms of Service and applicable law; use responsibly for research and analytics.
