Vrbo Scraper + STR Market KPIs (ADR · Occupancy · RevPAR) avatar

Vrbo Scraper + STR Market KPIs (ADR · Occupancy · RevPAR)

Pricing

from $3.00 / 1,000 listing extracteds

Go to Apify Store
Vrbo Scraper + STR Market KPIs (ADR · Occupancy · RevPAR)

Vrbo Scraper + STR Market KPIs (ADR · Occupancy · RevPAR)

Vrbo scraper with built-in STR investor KPIs — ADR, occupancy, RevPAR, estimated annual revenue per listing. 5 search modes (location, coordinates, polygon, URL, propertyId). Granular per-event enrichment: availability, reviews, host. HTML market report included.

Pricing

from $3.00 / 1,000 listing extracteds

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Vrbo Scraper + STR Market KPIs — ADR · Occupancy · RevPAR 🚀

SIÁN Agency Store SIÁN-Airbnb Property Scraper SIÁN-Zillow Property Scraper SIÁN-Apartments.com Scraper

🎉 NEW: Built-in STR investor KPIs — ADR · Occupancy · RevPAR · Estimated Annual Revenue per Vrbo listing

Built for short-term-rental investors, vacation-rental property managers, and market-sizing analysts who underwrite deals from data, not gut feel.


📋 Overview

Underwrite a vacation-rental deal in minutes, not days. The Vrbo Property Scraper pulls every listing in your target market and ships ready-to-model STR KPIs alongside the raw data — so you can rank comps by RevPAR before you make an offer.

Why thousands of STR investors and managers choose us:

  • Built-in STR KPIs: ADR, occupancyRate, RevPAR, estimatedAnnualRevenue, and isStale flag computed from per-listing calendar enrichment — competitors ship raw search results only.
  • 5 search modes: Location, coordinates, polygon (lat/lon bounding box), URL, and direct property ID. Most incumbents ship 1–2.
  • 🎯 Granular pay-per-event enrichment: Pay only for the data layer you actually need — ListingExtracted, AvailabilityEnriched, ReviewsEnriched, HostEnriched. No bundled "result" charges.
  • 💰 Tiered Idealista-style curve: FREE $0.030 → flat $0.003 at GOLD. Beats every paid Vrbo incumbent at scale.
  • 💎 HTML market report per run: KPI dashboard, ADR / occupancy distribution charts, top-host leaderboards — saved automatically, no extra cost.
  • NEW: Polygon search — scrape only inside a custom lat/lon polygon for ski-resort zones, coastal strips, and hyperlocal neighborhoods incumbents can't target.

✨ Features

  • 🏖️ Search by Location — City, region, country name; autocomplete-resolved
  • 📍 Search by Coordinates — Lat/lon + radius for precise market scans
  • 🗺️ Polygon Search — Multi-point lat/lon bounding for irregular markets
  • 🔗 URL Search — Paste a Vrbo search URL; we parse the filters
  • 🆔 Property ID Lookup — Direct fetch by Vrbo numeric ID
  • 📅 Calendar Enrichment — Full forward calendar with nightly prices and availability flags
  • Reviews Enrichment — Paginated review feed with rating, date, and reviewer
  • 👤 Host Enrichment — Host profile, badges (e.g. Premier Host), tenure, listing count
  • 📈 STR KPIs Per Listing — ADR, occupancyRate (with host-block baseline), RevPAR, estimatedAnnualRevenue, isStale
  • 📊 HTML Market Report — Auto-generated dashboard saved to the run's key-value store

🎬 Quick Start

Pick a search mode, hand us a location (or URL, coordinates, polygon, ID), choose which enrichments you want, and run. Results stream straight to the Apify dataset; the HTML report saves to the run's key-value store at report.html.

curl -X POST https://api.apify.com/v2/acts/sian.agency~vrbo-property-scraper/runs?token=[YOUR_TOKEN] \
-d '{"searchMode": "location", "query": "Miami Beach, FL", "computeAvailability": true}'

🚀 Getting Started (3 Simple Steps)

Step 1: Pick a search mode

Choose one of: location, coordinates, polygon, url, or propertyId.

Step 2: Toggle the enrichments you want

Flip on computeAvailability for KPIs, computeReviews for the review feed, computeHost for host profile. Each is opt-in and priced separately — pay only for what you need.

Step 3: Hit run

The first 25 listings are free (no credit card). Watch the dataset fill in real time. Download as JSON / CSV / Excel directly from the Apify UI.

That's it! In under 5 minutes, you'll have:

  • A clean dataset of Vrbo listings with 40+ fields
  • Per-listing ADR / occupancy / RevPAR / annual revenue estimates
  • An HTML market dashboard you can share with your team

📥 Input Configuration

FieldTypeRequiredDescription
searchModestringYesOne of: location, coordinates, polygon, url, propertyId
querystringConditionalLocation name (for location mode)
latitude / longitudenumberConditionalCenter point for coordinates mode
radiusnumberOptionalSearch radius in km (coordinates mode)
polygonarrayConditionalArray of [lat, lon] points for polygon mode
vrboUrlstringConditionalSearch URL for url mode
propertyIdstringConditionalDirect Vrbo property ID for propertyId mode
maxListingsintegerOptionalCap on results (default: tier-based)
computeAvailabilitybooleanOptionalEnrich each listing with full calendar + STR KPIs
computeReviewsbooleanOptionalEnrich each listing with paginated reviews
computeHostbooleanOptionalEnrich each listing with host profile

Example — search a destination + compute KPIs:

{
"searchMode": "location",
"query": "Aspen, CO",
"maxListings": 200,
"computeAvailability": true,
"computeHost": true
}

Example — polygon-bounded market scan:

{
"searchMode": "polygon",
"polygon": [
[25.79, -80.13],
[25.79, -80.10],
[25.76, -80.10],
[25.76, -80.13]
],
"computeAvailability": true
}

📤 Output

Results are saved to the Apify dataset with 40+ fields per listing including:

FieldTypeDescription
propertyIdstringVrbo numeric ID (string for precision)
listingTitlestringListing headline
propertyUrlstringDirect Vrbo URL
city / region / countrystringLocation breakdown
latitude / longitudenumberGeo coordinates
currentPriceNumericnumberParsed nightly price
currencystringISO currency code
ratingValuenumberVrbo 0–10 rating
bedrooms / bathrooms / maxOccupancyintegerProperty capacity
propertyBadgesarrayE.g. ["Premier Host", "On the beach"]
photoUrlsarrayAll listing photos
adrnumberAverage daily rate over the calendar window
occupancyRatenumberComputed occupancy (0–1), with 10% host-block baseline
revparnumberADR × occupancyRate
estimatedAnnualRevenuenumberRevPAR × 365
isStalebooleanTrue if calendar is empty AND review count < 3
availabilityCalendararrayPer-day calendar (when enrichment enabled)
reviewSamplearrayPaginated review feed (when enrichment enabled)
hostProfileobjectHost profile, badges, tenure (when enrichment enabled)

Example row (truncated):

{
"propertyId": "1234567",
"listingTitle": "Oceanfront 2BR · Premier Host",
"city": "Miami Beach",
"currentPriceNumeric": 312,
"currency": "USD",
"ratingValue": 9.6,
"bedrooms": 2,
"maxOccupancy": 4,
"adr": 298.5,
"occupancyRate": 0.71,
"revpar": 211.94,
"estimatedAnnualRevenue": 77357.6,
"isStale": false,
"propertyBadges": ["Premier Host", "On the beach"]
}

An HTML market report is also saved to report.html in the run's key-value store — KPI distributions, top hosts, ADR histograms, and a search-summary panel.


💼 Use Cases & Examples

1. STR investor underwriting

A short-term-rental investor sizing up a Miami Beach acquisition.

Input: ZIP code or polygon around the target property Output: Every comp's ADR, occupancy, RevPAR, estimated annual revenue Use: Rank comps by RevPAR, find the 90th-percentile performer in the cluster, build a pro forma you can defend to a lender.

2. Vacation-rental market sizing

A property manager building a TAM model for a new destination.

Input: City or region name Output: Total active listings, segmented by bedroom count, amenities, host type Use: Compute total addressable supply, identify undersupplied bedroom counts, plan acquisition or onboarding strategy.

3. Competitor RevPAR benchmarking

A pricing manager watching direct comps week-over-week.

Input: A polygon around the manager's portfolio Output: Weekly snapshots of competitor calendar fill, price changes, blackout patterns, host-block ratios Use: Tune nightly pricing in PriceLabs / Wheelhouse with real comp data — not aggregator estimates.

4. Destination revenue forecasting

A market analyst building a 12-month revenue forecast for an investor deck.

Input: Destination name + radius Output: Aggregate ADR + occupancy curves across the next 30 / 90 / 365 days Use: Forward-looking RevPAR projections, seasonality curves, peak-window pricing analysis.

5. Polygon-bounded market scans

An analyst studying a ski-resort zone or coastal strip.

Input: Custom lat/lon polygon Output: Only listings inside the polygon — no spillover from neighboring zip codes Use: Hyperlocal supply analysis incumbents can't replicate; perfect for ski-town micro-markets, beach strips, neighborhood-level comp sets.

6. Calendar-pricing audits

An owner auditing their own pricing vs. the market.

Input: Property ID + nearby comp IDs Output: Full forward calendar per property with nightly price + availability Use: Identify nights where you're overpriced (low occupancy ahead) or underpriced (already booked solid).


🔗 Integration Examples

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/vrbo-property-scraper').call({
searchMode: 'location',
query: 'Aspen, CO',
maxListings: 200,
computeAvailability: true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].adr, items[0].occupancyRate, items[0].estimatedAnnualRevenue);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/vrbo-property-scraper').call(run_input={
'searchMode': 'location',
'query': 'Miami Beach, FL',
'maxListings': 100,
'computeAvailability': True,
'computeHost': True,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['listingTitle'], item.get('revpar'), item.get('estimatedAnnualRevenue'))

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~vrbo-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"searchMode": "location", "query": "Lake Tahoe, CA", "computeAvailability": true}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Weekly schedule
  2. HTTP Request: Call the actor with your saved polygon
  3. Process: Read the dataset, compute deltas vs. last week
  4. Action: Push RevPAR alerts to Slack / email / a Notion database

📊 Performance & Pricing

FREE Tier (Try It Now)

  • 25 listings per run — full feature access, identical data quality
  • No credit card required
  • Perfect for testing a market before you commit
  • Unlimited listings per run
  • Volume-tiered pricing — the more you scrape, the cheaper each listing becomes
  • Pay-per-event: only charged for successful results

Headline pricing — ListingExtracted event:

TierPrice / listing
FREE$0.030
BRONZE ($20 spend)$0.012
SILVER ($100 spend)$0.006
GOLD ($500 spend)$0.003
PLATINUM ($2,000 spend)$0.003
DIAMOND ($5,000 spend)$0.003

Enrichment events (opt-in, charged only on success): AvailabilityEnriched, ReviewsEnriched, HostEnriched — each follows a similar tiered curve, with GOLD floor at $0.002.

💰 Best price on the market at scale — every paid Vrbo incumbent charges $0.0025–$0.005 flat with no volume curve. At GOLD floor we beat them on the headline event and give you opt-in enrichment for thinner rows.

🔗 View live pricing on the actor page


❓ Frequently Asked Questions

Q: How many listings can I process? A: FREE tier: 25 per run. PAID tier: unlimited. The tier curve drops the per-listing price at $20, $100, $500, $2,000, and $5,000 of lifetime spend.

Q: How are ADR, occupancy, and RevPAR computed? A: From each listing's forward calendar. ADR = mean nightly price across the window. occupancyRate = (unavailable nights ÷ window) − 10% host-block baseline (so we don't count blocked nights as bookings). RevPAR = ADR × occupancyRate. estimatedAnnualRevenue = RevPAR × 365.

Q: What's the isStale flag? A: true when the forward calendar shows full availability and the review count is < 3 — a strong signal the listing is inactive or new and shouldn't be counted in comp sets.

Q: Does the polygon mode support irregular shapes? A: Yes. Pass any closed lat/lon polygon (array of [lat, lon] points). We hand it to Vrbo's geo-bounded search.

Q: What output formats are available? A: JSON, CSV, Excel, RSS, JSONL, XML — export directly from the Apify dataset UI or via the API.

Q: Does it work with private or unlisted properties? A: No, only publicly accessible Vrbo listings are supported.

Q: Is this legal? A: Yes — we only extract publicly available data. See our legal section below.

Q: How long does processing take? A: ~1–2 seconds per listing including all enrichments. A 200-listing destination scan with full KPI enrichment runs in 4–6 minutes.


🐞 Troubleshooting

The dataset is empty after a successful run.

  • Check searchMode matches the field you provided (e.g. location mode needs query; polygon mode needs polygon).
  • For propertyId mode, ensure the ID is the numeric Vrbo property ID (not the URL slug).
  • On FREE tier, only 25 results return per run — if your search has < 25 matches, that's the full set.

STR KPIs (adr, occupancyRate, revpar) are missing.

  • Flip computeAvailability to true. KPIs are computed from the calendar enrichment, which is opt-in to keep low-tier scans cheap.

Polygon search returns 0 results.

  • Ensure the polygon is closed (first and last points equal — we auto-close if not) and contains at least 3 distinct points.
  • Polygons must be in [latitude, longitude] order, not [lon, lat].

A listing's ratingValue looks low (e.g. 4.8).

  • Vrbo ratings are on a 0–10 scale (not 0–5 like Airbnb). 4.8 means "needs improvement"; 9.6 is "exceptional".

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.


⚠️ Trademark Disclaimer

Vrbo® is a registered trademark of Expedia Group, Inc. This Apify Actor is an independent third-party scraping tool. It is not affiliated with, endorsed by, sponsored by, or connected to Vrbo, Expedia Group, or any of their subsidiaries. The Vrbo® name appears in this listing under nominative fair use, solely to identify the public platform whose publicly available listing data this tool helps you collect.

This tool does not provide access to Vrbo's internal systems, private APIs, partner data, or proprietary services. Users are responsible for ensuring their use complies with Vrbo's Terms of Service and all applicable laws.


🤝 Support

Telegram Support

Join our active support community


Built by SIÁN Agency | More Tools