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

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

Pricing

from $3.00 / 1,000 extracted listings

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 extracted listings

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

2

Bookmarked

12

Total users

9

Monthly active users

2 days ago

Last modified

Share

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

SIÁN Agency Store Airbnb Property Scraper Zillow Property Scraper 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.


🔍 What is the Vrbo Property Scraper — and when should you use it?

The Vrbo Property Scraper turns a Vrbo destination, map area or listing URL into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain. Each row carries the listing data plus the STR numbers an investor actually models on: ADR, occupancy, RevPAR and estimated annual revenue.

Use it when you need: vacation-rental listings for a market, nightly prices and forward calendars, occupancy and RevPAR estimates per property, review feeds, host profiles and Premier Host status, or a ranked comp set for an underwriting note.

Use something else when: you are reading the other side of the same short-term-rental market. Use the Airbnb Property Scraper for Airbnb supply, and the Booking.com Scraper for the hotel rates your listing competes against.


🤖 Use with AI agents

Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/vrbo-property-scraper

Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

I want to size up a short-term-rental market using the Apify Actor `sian.agency/vrbo-property-scraper`.
Use it when I need: Vrbo listings, nightly prices, forward calendars, occupancy and RevPAR estimates, estimated annual revenue, reviews, or host profiles.
Don't use it when: I am asking about Airbnb supply — use `sian.agency/airbnb-property-scraper` instead. For hotel rates in the same market, use `sian.agency/booking-com-scraper`.
How to call it: set `searchMode` to one of location (a destination name), coordinates (a latitude/longitude centre point), polygon (semicolon-separated lat,lng vertices), url (a Vrbo search or property URL), or propertyId (a numeric Vrbo id). Turn on `computeAvailability` to get occupancy, RevPAR and estimated annual revenue.
Start with this input:
{
"searchMode": "location",
"location": "Miami, Florida",
"maxResultsPerQuery": 50,
"computeAvailability": true,
"availabilityWindowDays": 90
}
Ask me which destination to scan and whether I want host and review enrichment, then run the Actor and summarise the results as a table ranked by estimated annual revenue.

Things you can ask your agent for:

  • "Pull the top 50 Vrbo listings in Park City, work out median ADR and occupancy, and tell me whether a 3-bedroom clears $90k a year."
  • "Scan this coastal strip polygon every Monday and alert me when median RevPAR moves more than 5% week over week."
  • "Take these 20 Vrbo property IDs, pull their forward calendars, and show me which nights my listing is priced below the comp set."

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/vrbo-property-scraper.md.


📋 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 centre point 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", "location": "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, fetchReviews for the review feed, fetchHost 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
locationstringConditionalDestination name for location mode, e.g. "Miami, Florida"
locationsarrayOptional (PAID)Bulk list of destination names — many markets in one run
latitude / longitudestringConditionalCenter point for coordinates mode
polygonstringConditionalSemicolon-separated lat,lng vertex pairs for polygon mode
vrboUrlstringConditionalSearch or property URL for url mode
vrboUrlsarrayOptional (PAID)Bulk list of Vrbo search or property URLs — paste many in one run
propertyIdstringConditionalDirect Vrbo property ID for propertyId mode
propertyIdsarrayOptional (PAID)Bulk list of Vrbo property IDs
maxResultsPerQueryintegerOptionalCap on listings per query (default 50, max 300)
computeAvailabilitybooleanOptionalEnrich each listing with its forward calendar + STR KPIs
availabilityWindowDaysintegerOptionalForward window for the KPIs: 30 / 90 (default) / 180 / 365
fetchReviewsbooleanOptionalEnrich each listing with its review feed
maxReviewsPerListingintegerOptionalCap on reviews per listing (default 10, max 200)
fetchHostbooleanOptionalEnrich each listing with the host profile

Example — search a destination + compute KPIs:

{
"searchMode": "location",
"location": "Aspen, Colorado",
"maxResultsPerQuery": 200,
"computeAvailability": true,
"fetchHost": 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;25.79,-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)
propertyTitlestringListing headline
detailUrlstringDirect Vrbo URL
city / addressstringLocation breakdown
latitude / longitudenumberGeo coordinates
currentPrice / currentPriceNumericstring / numberDisplayed nightly price, and it parsed
currencystringISO currency code
ratingScore / ratingLabelnumber / stringVrbo 0–10 rating and its label
bedrooms / sleepsnumberProperty capacity
badges / features / isPremierHostarray / booleanE.g. ["Premier Host", "On the beach"]
photos / thumbnailarray / stringAll listing photos, plus the lead image
amenities / policies / listingDescriptionobject / stringFull detail bundle
adrnumberAverage daily rate over the calendar window
occupancyRatenumberComputed occupancy (0–1), with 10% host-block baseline
unavailableRatenumberRaw share of nights flagged unavailable (bookings + host blocks)
revparnumberADR × occupancyRate
estimatedAnnualRevenuenumberRevPAR × 365
daysUntilNextAvailablenumberNights until the first bookable date
isStalebooleanTrue if the forward calendar is wide open AND review count < 3
kpiAssumptionsobjectThe window, host-block baseline and annualisation used
availabilityobjectPer-day calendar (when enrichment enabled)
reviews / reviewsTotalarray / numberReview feed and upstream total (when enrichment enabled)
hostobjectHost profile, badges, tenure (when enrichment enabled)

Example row (truncated):

{
"propertyId": "1234567",
"propertyTitle": "Oceanfront 2BR · Premier Host",
"detailUrl": "https://www.vrbo.com/1234567",
"city": "Miami Beach",
"currentPrice": "$312",
"currentPriceNumeric": 312,
"currency": "USD",
"ratingScore": 9.6,
"ratingLabel": "Exceptional",
"bedrooms": 2,
"sleeps": 4,
"adr": 298.5,
"occupancyRate": 0.71,
"revpar": 211.94,
"estimatedAnnualRevenue": 77357.6,
"isStale": false,
"isPremierHost": true,
"badges": ["Premier Host", "On the beach"]
}

An HTML market report is also saved to report.html in the run's key-value store — median ADR / occupancy / RevPAR / estimated annual revenue, a copy-ready market brief, the top listings ranked by earnings, the city mix, an itemised charge statement, and a one-click retry for any search that came back empty.


💼 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 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',
location: 'Aspen, Colorado',
maxResultsPerQuery: 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',
'location': 'Miami Beach, Florida',
'maxResultsPerQuery': 100,
'computeAvailability': True,
'fetchHost': True,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['propertyTitle'], 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", "location": "Lake Tahoe, California", "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 a closed polygon as semicolon-separated lat,lng vertex pairs — first and last vertex the same. Three or more distinct vertices, any shape.

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 location; 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