Airbnb Revenue & ROI Analyzer — Bulk CSV API
Pricing
from $5.00 / 1,000 property analyses
Airbnb Revenue & ROI Analyzer — Bulk CSV API
Model Airbnb revenue and ROI from listing evidence and your assumptions. Blocked dates are not confirmed bookings. Bulk export: JSON, CSV, Excel and API. PPE: from $5/1K property analyses; usage extra.
Pricing
from $5.00 / 1,000 property analyses
Rating
0.0
(0)
Developer
Apivault Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Airbnb Revenue, Occupancy & ROI Analyzer

Turn public Airbnb forward-calendar signals and your investment assumptions into a property-level short-term-rental underwriting report. Analyze supplied listings or discover comparable properties for a city or neighborhood, then estimate occupancy, ADR, RevPAR, revenue, expenses, NOI, cap rate, cash-on-cash return, annual cash flow, payback and break-even occupancy — without an Airbnb login.
Two analysis modes
listing— analyze specific Airbnb listing URLs or room IDs. Duplicate targets are removed before any network work or billing.market— entersearchLocationsuch asAustin, Texas; the Actor discovers a bounded sample of public comparable listings, analyzes their calendars and returns sample medians plus a ranked opportunity list inSUMMARY. This is one search response, without pagination; it does not represent the full market. Bedroom/guest filters are sent to Airbnb and are not independently verified from listing details.
Start with one listing and calendarMonths: 2. maxProperties defaults to 5 and caps both modes. Set it explicitly for larger batches (up to 50 supplied targets; market discovery up to 20). Duplicate numeric IDs and canonical Airbnb URLs are merged. Unsupported URLs and malformed inputs produce no paid analysis.
What you get
One clean analysis row per successful Airbnb listing:
- Forward available and blocked nights from today through the end of the selected 1–12 calendar months (current month included; past dates excluded)
- Blocked-night rate and an adjustable occupancy estimate
- Average daily rate (ADR) from published forward prices or your override
- RevPAR and estimated annual booked nights
- Low, base and high annual gross-revenue scenarios
- Week-by-week and month-by-month occupancy and revenue projections
- Conservative, base and optimistic sensitivity scenarios for ADR, occupancy, NOI and ROI
- Optional changes versus previous snapshots with monitoring alerts
- Optional separate weekly/monthly Dataset rows for CSV and spreadsheet workflows
- Portfolio and comparable-market medians in the
SUMMARYrecord - Operating expenses and net operating income (NOI)
- Cap rate, cash-on-cash return and annual cash flow
- Break-even occupancy and estimated payback period
- Confidence score, methodology and explicit warnings
Why the occupancy adjustment matters
An unavailable Airbnb calendar date is not automatically a guest booking. It may be booked, blocked by the host, reserved for maintenance or unavailable because of another restriction.
This Actor reports the public blockedNightRatePercent separately and applies your bookingShareOfBlockedPercent assumption to estimate occupancy. The default assumes that 75% of blocked nights represent bookings. Change it to match your market knowledge and run conservative, base and optimistic scenarios.
Example input
{"mode": "listing","listingUrls": ["https://www.airbnb.com/rooms/910250"],"calendarMonths": 12,"currency": "USD","bookingShareOfBlockedPercent": 75,"averageStayNights": 3,"platformFeePercent": 3,"managementFeePercent": 15,"maintenancePercent": 5,"utilitiesMonthly": 300,"insuranceAnnual": 1500,"propertyTaxAnnual": 6000,"mortgageMonthly": 2500,"purchasePrice": 500000,"downPaymentPercent": 20,"closingCosts": 10000,"furnishingCosts": 20000}
Market example:
{"mode": "market","searchLocation": "Austin, Texas","maxComparableListings": 10,"searchBedrooms": 1,"searchGuests": 2,"calendarMonths": 6,"currency": "USD"}
Revenue methodology
The model is transparent and adjustable:
- Public forward calendar dates are separated into available and blocked nights.
- Estimated booked nights = blocked nights × your booking-share assumption.
- ADR priority is: your
nightlyRateOverride, published calendar price, a live public booking quote, then a public market-search price. Prices explicitly quoted for several nights are divided by that count. A quote samples one available stay and may include guest fees; it is not the realized host ADR or a verified annual average. - Gross revenue = estimated booked nights × ADR + optional cleaning-fee revenue.
weeklyProjectionsgroups observed dates into ISO Monday–Sunday weeks; boundary weeks can contain fewer than seven observed days.- When fewer than 12 months are analyzed, the selected window is annualized. The output warns that a short window may not capture full seasonality.
- Conservative and optimistic scenarios vary booking share by 15 percentage points and ADR by 10%.
These are directional investment estimates, not Airbnb host payout data or verified reservations.
ROI methodology
- NOI = gross revenue − operating expenses, before mortgage debt service.
- Cap rate = NOI ÷ purchase price.
- Cash investment = down payment + closing costs + furnishing/startup costs.
- Annual cash flow = NOI − annual mortgage payments.
- Cash-on-cash return = annual cash flow ÷ cash investment.
- Break-even occupancy = (fixed annual expenses + debt service) ÷ (365 × net contribution per occupied night). The contribution includes cleaning-fee revenue after percentage fees and subtracts cleaning costs per average stay. Values above 100% are retained;
breakEvenAchievableis false when the assumptions cannot break even within 100% occupancy.
Set any expense to zero when it does not apply. Explicit zero values are preserved.
Inputs that materially affect the result
| Input | Effect |
|---|---|
calendarMonths | Longer windows improve seasonality coverage |
nightlyRateOverride | Replaces published forward-calendar ADR |
bookingShareOfBlockedPercent | Converts blocked nights into modeled booked nights |
averageStayNights | Controls estimated reservation count and cleaning economics |
| Operating expenses | Affect NOI, cap rate and break-even occupancy |
| Purchase and financing inputs | Enable acquisition returns and cash flow |
Portfolio, CSV and monitoring output
SUMMARY includes median occupancy, ADR, annual revenue and NOI across all delivered properties. Market mode also includes up to ten topOpportunities; the transparent score combines estimated occupancy (45%), confidence (25%) and revenue relative to the strongest analyzed comparable (30%).
Set emitProjectionRows: true to append weekly_projection and monthly_projection rows after each main property_analysis row. Projection rows are not separate billable property events.
To compare a new run with an older export, pass selected prior results through previousSnapshots. Matching listings receive changesSincePrevious with occupancy-point, ADR and annual-revenue deltas plus alerts for declines of at least 10% or 10 percentage points.
Each previous snapshot requires listingId and all four comparison metrics: blockedNightRatePercent, estimatedOccupancyRatePercent, averageDailyRateEstimate, annualGrossRevenueEstimate. Use the same currency and modeling assumptions in both runs. A percentage change from a zero baseline is null, because it is undefined. Absolute changes still appear. Changes in the rolling calendar window can affect comparisons independently of demand.
SUMMARY.status is succeeded, partial, empty or failed; complete indicates all selected work and projections were delivered without errors or deferrals. capped, budgetDeferred and deferredListingUrls disclose targets not analyzed because of limits. Retry these URLs explicitly. forwardCalendarComplete describes date coverage only; bookingsVerified is always false. confidenceScore is a coverage heuristic, not a statistical probability of accuracy.
Reliability and billing safeguards
- Inputs are validated before network work starts.
- Duplicate listing IDs are removed before requests and charging.
- Each listing has bounded retries and the complete run has a hard deadline.
- Results are delivered progressively.
- A failed, removed or unavailable listing is written to
FAILED_INPUTSand is not charged as a successful property analysis. - Pay-per-result charging occurs only after an analysis is delivered to the Dataset.
- Result spending limits are checked against the current run's effective property-event price before selecting work. A billing failure remains a delivered row and is disclosed in
SUMMARY.billingErrors; it is not counted as a missing property. - Complete failure exits with a failed run; useful mixed results have a partial summary.
ERRORSandFAILED_INPUTScontain listing IDs and safe retry guidance, without source/proxy details or rejected raw URLs. - Residential proxy is recommended for public Airbnb calendar access.
Pricing
Pay per successfully delivered property analysis: $10 per 1,000 on Free, $5 per 1,000 on paid Apify plans. No Actor start event. Projection rows are not extra property events. Platform compute, storage and proxy traffic are paid by the run owner and add to the event price. Failed listings have no property event, but the run can still consume resources.
API and AI agents
Use Actor apivault_labs/airbnb-revenue-occupancy-roi-analyzer with the Apify REST API or Apify MCP. A small starting input is:
{"listingUrls":["910250"],"calendarMonths":2,"maxProperties":1}
Call POST https://api.apify.com/v2/acts/apivault_labs~airbnb-revenue-occupancy-roi-analyzer/runs using your Apify Bearer authentication and this JSON body. Read the run's default Dataset, then SUMMARY and ERRORS from its default key-value store. Poll the run until it finishes; a successful HTTP start does not imply a completed analysis.
For MCP, discover this Actor's tool, use the same supported input fields, wait for completion, then read the Dataset and SUMMARY/ERRORS with the returned storage IDs. Only property_analysis rows should enter property totals; weekly_projection and monthly_projection rows are separate CSV views. Explain blocked-night assumptions and price evidence before presenting modeled revenue or ROI. Use SUMMARY.deferredListingUrls for a bounded follow-up run.
Responsible use
This Actor uses public listing signals and is not affiliated with or endorsed by Airbnb. Use it for lawful research and underwriting, respect applicable laws and platform terms, and independently verify financial assumptions before purchasing or operating a property.
