# Vrbo Scraper - Vacation Rentals, Prices, Hosts & Reviews (`scrapersdelight/vrbo-scraper`) Actor

Scrape Vrbo vacation rentals by destination, dates and guests: nightly and total price, bedrooms, baths, sleeps, rating, host, house rules, cancellation, coordinates, amenities, photos and permit number. Optional reviews and availability calendar with occupancy. No login, no browser.

- **URL**: https://apify.com/scrapersdelight/vrbo-scraper.md
- **Developed by:** [Scrapers Delight](https://apify.com/scrapersdelight) (community)
- **Categories:** Travel, Real estate, Lead generation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.60 / 1,000 vrbo properties

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does Vrbo Scraper do?

**Vrbo Scraper** exports Vrbo vacation rentals for any destination, dates and party size: one row per property with the nightly and total price for your stay, bedrooms, bathrooms, beds, sleeps, guest rating, host, house rules, cancellation deadlines, coordinates, amenities and photos. Property managers, short-term-rental investors and travel-data teams use it to price, compare and track Vrbo listings.

Vrbo scraper · Vrbo API · VRBO.com scraper · HomeAway scraper · vacation rental data

- **Search like the site does**: a town, area, state or landmark ("Gatlinburg, Tennessee", "Outer Banks", "Tuscany"), a Vrbo region id, a point or a map box, with Vrbo's own filters (price, bedrooms, bathrooms, property type, amenities, rating, pets, Instant Confirmation, Premier Host, free cancellation).
- **Listing links or numbers**: vrbo.com/4605824, 7297373ha, Stayz/Bookabach links, legacy dotted ids.
- **Full property facts on every row**: host name and scorecard, structured house rules (check-in/out times, minimum renter age, pets, smoking, events), cancellation timeline, short-term-rental registration number when the listing shows one.
- **Guest reviews** (optional): rating, text, date, stay length, travel type, liked aspects, helpful votes, owner reply.
- **Availability calendar** (optional add-on): 365 days of availability, nightly price and minimum stay, with occupancy, ADR, RevPAR and estimated annual revenue.
- **Monitor mode** for schedules: only new properties, price changes and new reviews.
- **No login, no browser**: Vrbo's own API, exported as JSON, CSV or Excel, or through the Apify API, webhooks and MCP.

### What data can you get from Vrbo?

<table>
<tr><td>🏠 Title, type (<code>propertyType</code>)</td><td>🛏️ Bedrooms, beds, bed types per room</td><td>🛁 Bathrooms (half baths as .5)</td></tr>
<tr><td>👥 Sleeps</td><td>💵 Price per night + total for your dates</td><td>🏷️ Discount badge, was-price</td></tr>
<tr><td>⭐ Rating /10, label, review count</td><td>📊 Review categories + histogram</td><td>🧑‍💼 Host name, Premier Host, languages</td></tr>
<tr><td>📞 Host scorecard: communication, check-in, cancellation rate</td><td>📜 House rules: check-in/out, min age, pets, smoking, events</td><td>❌ Free-cancellation deadline + refund timeline</td></tr>
<tr><td>⚡ Instant Confirmation flag</td><td>📍 City, state, country, latitude / longitude</td><td>🧾 Registration / permit number</td></tr>
<tr><td>🧰 Every amenity by group, WiFi speed</td><td>🖼️ Photo gallery with captions</td><td>📝 Full description</td></tr>
<tr><td>🛡️ Safety features, damage deposit</td><td>📅 Calendar: availability, nightly price, min stay</td><td>📈 Occupancy, ADR, RevPAR, est. revenue</td></tr>
<tr><td>💬 Reviews: text, date, travel type, owner reply</td><td>🔗 Listing URL + booking URL with your dates</td><td>🔢 Vrbo listing number + property id</td></tr>
</table>

### How to scrape Vrbo with Vrbo Scraper

1. Create a free Apify account (it comes with monthly free credit).
2. Open **Vrbo Scraper** and type one or more destinations, or paste Vrbo listing links.
3. Set your check-in, check-out and number of guests (optional; without dates the actor searches 30 days ahead for 3 nights).
4. Pick filters, and turn on reviews or the availability calendar if you need them.
5. Click **Start**, then download the results as JSON, CSV, Excel or HTML, or read them through the API.

### ⬇️ Input

| Parameter | Type | Description |
|---|---|---|
| `locations` | array | Destinations as you would type them on Vrbo. Also `region:<id>`, a point `lat,lng`, or `bbox:swLat,swLng,neLat,neLng`. Each line is its own search. |
| `startUrls` | array | Vrbo listing links or numbers (`vrbo.com/4605824`, `4193579ha`, `stayz.com.au/holiday-rental/p5133803vb`, `321.2880733.3452770`) or Vrbo search links. Add `/reviews` for reviews only. |
| `regionIds` | array | Vrbo region ids (the `regionId=` of a search link). |
| `polygon` | array | 3+ `lat,lng` corners: only properties inside are delivered. |
| `checkIn`, `checkOut` | string | Dates (`2027-01-12`) or relative (`30 days`). Default: 30 days ahead, 3 nights. |
| `adults` | integer | Default 2. `childrenAges`: one age per child. `pets`: pet-friendly only. |
| `sortBy` | string | Recommended (default), price low/high, guest rating, number of reviews. |
| `minPrice`, `maxPrice`, `priceType` | integer / string | Price range per night (default) or for the whole stay. |
| `minBedrooms`, `maxBedrooms`, `minBathrooms` | integer | Room counts. |
| `propertyTypes`, `amenities`, `locationTypes`, `beachAccess` | array | Vrbo's own filter values (15 types, 25 amenities, 9 locations). |
| `minRating` | string | 7+, 8+ or 9+ out of 10. |
| `instantBookOnly`, `premierHostOnly`, `availableOnly` | boolean | Vrbo's booking-option, host and availability filters. |
| `freeCancellation` | string | Free cancellation until 1, 5, 14, 30 or 60 days before check-in. |
| `maxResults` | integer | Properties per search. Default 50, 0 = all Vrbo shows (about 400 per search). |
| `includeDetails` | boolean | Description, all amenities, rooms & beds, gallery, review categories, cancellation timeline. Default **on**, no extra charge. |
| `includeCalendar` | boolean | Availability calendar + occupancy figures (add-on). `calendarDays`: 30-730, default 365. |
| `currency` | string | USD (vrbo.com, default), AUD (Stayz) or NZD (Bookabach). |
| `includeReviews` | boolean | Adds review rows. `maxReviewsPerProperty` (default 20, 0 = all), `reviewsSort` (newest / highest / lowest), `reviewsSince` (date). |
| `monitorMode`, `monitorKey` | boolean / string | Scheduled runs: only new or re-priced properties and new reviews. |
| `proxyConfiguration` | object | Leave as is: the actor switches to Apify residential proxies by itself when Vrbo refuses the direct connection. |

#### Input JSON

```json
{
  "locations": ["Gatlinburg, Tennessee", "Destin, Florida"],
  "checkIn": "2027-03-12",
  "checkOut": "2027-03-15",
  "adults": 4,
  "minBedrooms": 3,
  "amenities": ["hot_tub"],
  "maxResults": 100,
  "includeReviews": true,
  "maxReviewsPerProperty": 10
}
```

#### Type the destination the way Vrbo's search box understands it

A town with its state or country ("Dublin, Ohio") always lands on that town. A bare name that several places share ("Dublin", "Paris") is resolved by a fixed rule and the run summary lists the other places with their `region:<id>`. Areas and states ("Florida", "Outer Banks", "Tuscany") are resolved by Vrbo's own destination search, exactly like typing them on the site.

#### Split big areas into towns

Vrbo shows about 400 properties per search (measured: Orlando 400, Gatlinburg 375, Destin 354). For a whole state or coast, list the towns, or add price bands as separate runs.

### ⬆️ Output

Each property is one item (`"kind": "property"`); each review is one item (`"kind": "review"`). An excerpt of a real row (Orlando, 4 adults, January 12-16, 2027):

```json
{
  "kind": "property", "vrboId": "4605824", "propertyId": "116670625",
  "url": "https://www.vrbo.com/4605824",
  "title": "5★ SODO Home, Guest Fave,PetsOk, Game Room, BBQ, Fire Pit,Netflix, Popcorn Maker",
  "propertyType": "House", "bedrooms": 4, "bathrooms": 2.5, "beds": 4, "sleeps": 10,
  "pricePerNight": 423, "totalPrice": 1692, "pricePerNightBeforeDiscount": 459, "currency": "USD",
  "nights": 4, "feesIncluded": true, "dealBadge": "Early booking $145 off",
  "rating": 10, "ratingLabel": "Exceptional", "reviewCount": 29,
  "isPremierHost": true, "instantConfirmation": true, "freeCancellationUntil": "2026-12-29",
  "city": "Orlando", "province": "FL", "countryCode": "USA", "latitude": 28.517721, "longitude": -81.367946,
  "host": { "name": "Ciara Blakely", "isPremierHost": true, "languages": ["English"], "communicationScore": 10, "checkInScore": 10, "cancellationRate": 0 },
  "houseRules": { "checkInTime": "4:00 PM", "checkOutTime": "10:00 AM", "minimumAge": 25, "childrenAllowed": true, "petsAllowed": true,
    "petsNote": "Pets allowed: less than 20 lbs per pet (limit 2 pets total)", "smokingAllowed": false, "eventsAllowed": false },
  "safetyFeatures": ["carbon monoxide detector", "smoke detector", "fire extinguisher"],
  "amenityCount": 57, "wifiSpeed": "500+ Mbps (good for 6+ people or 10+ devices)", "photoCount": 32,
  "bedroomDetails": [{ "name": "Bedroom 1", "beds": "1 Queen Bed" }, { "name": "Bedroom 3", "beds": "1 King Bed" }],
  "reviewCategories": { "Cleanliness": 10, "Check-in": 10, "Communication": 10, "Location": 9.6, "Listing accuracy": 10, "Value for money": 10 },
  "cancellationPolicy": { "fullRefundUntil": "2026-12-29", "partialRefundUntil": "2027-01-05", "nonRefundable": false }
}
```

A review row (real):

```json
{
  "kind": "review", "reviewId": "683ed6790209a520ac4e975d", "propertyId": "97073859", "vrboId": "3589404",
  "rating": 10, "ratingMax": 10, "ratingLabel": "Excellent", "title": "Charming house",
  "text": "We had a wonderful time in this house. With the pool, the hot tub, the BBQ, we enjoyed every square feet! ...",
  "authorName": "Maider M.", "submittedAt": "2025-06-03", "stayDuration": "Stayed 4 nights in May 2025",
  "travelType": "with family and young children", "liked": ["Cleanliness", "check-in", "communication", "location", "listing accuracy"],
  "helpfulVotes": 0, "ownerResponse": { "text": "Thank you so much for your wonderful review! ...", "respondedAt": "2025-06-23" }
}
```

With the calendar add-on, a property row also carries (real, Gatlinburg): `occupancy30d` 0.6, `occupancy90d` 0.26, `occupancy365d` 0.09, `adr` 371.73, `revpar` 33.46, `estimatedAnnualRevenue` 12211, `firstAvailableDate` "2026-10-25", `minimumStay` 2, and `calendar`: `[{ "date": "2026-10-25", "available": true, "price": 390, "minStay": 2 }, { "date": "2026-10-26", "available": true, "price": 386, "minStay": 2 }, ...]`.

#### Fields and measured fill

Measured on a 100-property run (Orlando, Florida, 4 adults, January 12-16, 2027, details on) unless noted.

| Field | Meaning | Fill |
|---|---|---|
| `vrboId`, `propertyId`, `url`, `bookingUrl` | Vrbo listing number, property id, links | 100% |
| `title`, `propertyType` | Listing title, Cabin / House / Condo ... | 100% |
| `bedrooms` / `beds` / `sleeps` | Room and party counts (hotels and resorts often show no "sleeps") | 99% / 95% / 91% |
| `bathrooms`, `bathroomsText` | With half baths ("2 bathrooms, 1 half bathroom" = 2.5) | 100% |
| `pricePerNight`, `totalPrice`, `nights`, `currency`, `feesIncluded` | Price for your stay, as Vrbo shows it | 100% |
| `pricePerNightBeforeDiscount`, `dealBadge` | Was-price and deal (only discounted listings) | 52% / 51% |
| `rating`, `ratingLabel`, `reviewCount` | Out of 10 (new listings have none) | 91% / 86% / 100% |
| `instantConfirmation`, `isPremierHost`, `freeCancellation` | Booking flags | 100% |
| `freeCancellationUntil` | Last day for a full refund | 97% |
| `city`, `province`, `countryCode`, `latitude`, `longitude` | Location | 100% |
| `host.name` / scorecard (`communicationScore`, `checkInScore`, `cancellationRate`) | Host or manager | 100% / 76-79% |
| `houseRules` check-in / check-out / pets / smoking / events | Structured house rules | 99% |
| `houseRules.minimumAge` | Minimum age to rent | 77% |
| `registrationNumber` | Permit / registration number (only listings that show one) | 4% (Orlando) |
| `safetyFeatures`, `importantInfo` | Safety items, Vrbo's "you need to know" lines | 100% |
| `description`, `amenities`, `amenityCount`, `gallery`, `photoCount` | Details (on by default) | 100% |
| `bedroomDetails`, `bathroomDetails`, `spaces` | Beds per room, bathroom features | 95% / 100% / 91% |
| `reviewCategories`, `ratingHistogram` | Cleanliness, check-in ... out of 10; 10/8/6/4/2 counts | 79% / 100% |
| `cancellationPolicy` | Full / partial refund dates + Vrbo's wording | 100% |
| `wifiSpeed` | Stated internet speed | 49% |
| Calendar fields (`calendar`, `occupancy*`, `adr`, `revpar`, `estimatedAnnualRevenue`, `firstAvailableDate`, `minimumStay`) | Add-on, 10-property run | 100% |
| Review `rating`, `submittedAt`, `authorName`, `stayDuration`, `helpfulVotes` | 306 reviews, 10 Gatlinburg properties | 100% / 100% / 100% / 99.7% / 100% |
| Review `text` / `title` / `liked` / `ownerResponse` / `travelType` | Optional for reviewers and owners | 87% / 52% / 92% / 58% / 65% |

### Use cases

- 🏘️ **Property managers**: price your listings against every comparable property for the same dates.
- 📈 **Short-term-rental investors**: rank a market by ADR, occupancy and estimated revenue from the calendar add-on.
- 🧾 **Permit and compliance teams**: collect registration numbers, minimum renter ages and event rules by town.
- 🛎️ **Hosts and co-hosts**: find Premier Hosts, their cancellation rates and review scores in your area.
- 💬 **Reputation analysts**: export every review with travel type and owner replies.
- 🧭 **Travel apps and agencies**: feed availability and prices for chosen dates into your own search.

### How much does it cost to scrape Vrbo?

Pay per result, no start fee: **$0.0016 per property** ($1.60 per 1,000), details included. Reviews are **$0.0009 per review** and the availability calendar add-on is **$0.01 per property** that carries it. You pay only for rows in the dataset.

| Run | Rows | Cost |
|---|---|---|
| Demo (prefill: Gatlinburg, 10 properties) | 10 | $0.016 |
| One town | 100 properties | $0.16 |
| Three towns | 1,000 properties | $1.60 |
| 10 properties + 20 reviews each | 10 + 200 | $0.20 |
| 100 properties + calendar | 100 | $1.16 |

### Integrations, API, scheduling & MCP

- **Schedules**: save a task and run it daily or weekly; turn on **Monitor mode** to receive only new and re-priced properties and new reviews.
- **Webhooks and apps**: send results to Make, Zapier, n8n, Google Sheets, Slack or your own endpoint when a run finishes.
- **API**: start runs and read the dataset with the Apify API ([Python](https://apify.com/scrapersdelight/vrbo-scraper/api/python), [JavaScript](https://apify.com/scrapersdelight/vrbo-scraper/api/javascript)).
- **MCP**: use Vrbo Scraper from an AI agent through the [Apify MCP server](https://apify.com/scrapersdelight/vrbo-scraper/api/mcp).

### More travel and rental scrapers

| Scraper | Use it when |
|---|---|
| 🏠 [Airbnb Scraper](https://apify.com/scrapersdelight/airbnb-scraper) | You need Airbnb listings next to Vrbo |
| 💬 [Airbnb Reviews Scraper](https://apify.com/scrapersdelight/airbnb-reviews-scraper) | You need Airbnb guest reviews |
| 🏨 [Expedia & Hotels.com Scraper](https://apify.com/topapi/expedia-hotels-scraper) | You compare vacation rentals with hotels |
| 🛏️ [Booking.com Hotels Scraper](https://apify.com/topapi/booking-hotels-scraper) | You need Booking.com prices and rooms |
| 🗺️ [Google Hotels Scraper](https://apify.com/topapi/google-hotels-scraper) | You want prices across booking sites |
| 🧭 [Tripadvisor Scraper](https://apify.com/scrapersdelight/tripadvisor-scraper) | You need Tripadvisor places and ratings |

### Limits & empty runs

- About **400 properties per search** (Vrbo's own limit); list several towns to go further.
- Prices are fees-included totals as Vrbo shows them; Vrbo's US, Australian and New Zealand sites do not publish a cleaning / service / tax breakdown in their API, so there are no separate fee fields.
- Vrbo applies "Mobile price" deals to some listings; such rows carry `mobilePriceDeal: true` and the deal text.
- A listing booked for your dates comes back with `availableForDates: false` and no price.
- A run with 0 rows means Vrbo found nothing for that destination and filter set (see `RUN_SUMMARY`); nothing is charged.
- Measured speed: 100 properties with details in 12 s; 1,129 properties in 38 s; 318 reviews in 4.4 s.

### ❓ FAQ

#### How much does Vrbo Scraper cost?

$0.0016 per property with details, $0.0009 per review and $0.01 per property with the availability calendar. A 100-property town costs $0.16.

#### How many properties can Vrbo Scraper return?

Up to about 400 per search, and as many searches as you add. Our 3-town test returned 1,129 properties in one run.

#### Does Vrbo Scraper return the host name and house rules?

Yes, on every row: host or manager name, Premier Host badge, languages, communication and check-in scores and cancellation rate, plus structured check-in/out times, minimum renter age and pets, smoking, children and events rules.

#### Can Vrbo Scraper get every review of a property?

Yes. Set **Max reviews per property** to 0. In our test it read all 132, 115 and 71 reviews of three properties (100% of Vrbo's own count).

#### What does the availability calendar add-on measure?

Day-by-day availability with Vrbo's average nightly price and minimum stay for up to 730 days, and from it the share of blocked nights (30/90/365 days), ADR, RevPAR and an estimated annual revenue. Blocked nights include owner blocks, not only bookings.

#### Can I schedule Vrbo Scraper to watch a market?

Yes. Save a task, add a schedule and turn on **Monitor mode**. The second run of our test delivered 0 rows (nothing had changed) and charged nothing.

#### Can I get prices in another currency with Vrbo Scraper?

AUD and NZD, from Vrbo's own Australian (Stayz) and New Zealand (Bookabach) sites. vrbo.com itself prices in US dollars only.

#### Can I use Vrbo Scraper with the Apify API or an MCP server?

Yes: every run is available through the Apify API and the Apify MCP server, and results can be sent to Make, Zapier, n8n or Google Sheets.

#### Do I need a Vrbo account or API key?

No. Vrbo Scraper reads Vrbo's public data with no login, cookies or API key.

#### Why did my Vrbo Scraper run return no results?

Usually the filters exclude everything for those dates (for example a price range below the market), or the destination text matched nothing. `RUN_SUMMARY` lists the resolved destination and any input that was not matched.

#### Your feedback

Found a missing field or a bug? Open an issue on the [Issues tab](https://apify.com/scrapersdelight/vrbo-scraper/issues/open) and we will fix it.

# Actor input Schema

## `locations` (type: `array`):

Where to search, as you would type it on Vrbo: a town, area, state, island or landmark ("Gatlinburg, Tennessee", "Outer Banks", "Florida", "Tuscany"). Also accepted: region:<id> (a Vrbo region id), a point "lat,lng" (searches around it) or a map box "bbox:swLat,swLng,neLat,neLng". Vrbo shows up to about 400 properties per search; split a large area into towns to go further.

## `startUrls` (type: `array`):

Vrbo property links (vrbo.com/4605824, vrbo.com/7297373ha, stayz.com.au/holiday-rental/p5133803vb), bare listing numbers (4605824, 4193579ha, legacy 321.2880733.3452770) or Vrbo search links (vrbo.com/search?...regionId=...). Add /reviews to a listing (4605824/reviews) to get its reviews only, without the property row. Every listing you give gets its row (maxResults applies to searches).

## `regionIds` (type: `array`):

Vrbo region ids to search (the regionId= of a Vrbo search link, or the region listed in the run summary), e.g. 7474 for Gatlinburg.

## `polygon` (type: `array`):

Optional: at least 3 "lat,lng" corners. The area's bounding box is searched and only properties whose coordinates fall inside the polygon are delivered (and charged).

## `checkIn` (type: `string`):

Check-in date (YYYY-MM-DD) or how far ahead (e.g. "30 days"). Empty = 30 days from today.

## `checkOut` (type: `string`):

Check-out date (YYYY-MM-DD) or how long after check-in (e.g. "7 days"). Empty = 3 nights.

## `adults` (type: `integer`):

Number of adults. Vrbo only lists properties that sleep the whole party.

## `childrenAges` (type: `array`):

One age (0-17) per child, e.g. 4 and 9.

## `pets` (type: `boolean`):

Only properties that allow pets (Vrbo's own pets filter).

## `sortBy` (type: `string`):

Vrbo's own sort order.

## `minPrice` (type: `integer`):

Lowest price (per night or for the whole stay, see Price type), in the search currency.

## `maxPrice` (type: `integer`):

Highest price (per night or for the whole stay, see Price type), in the search currency.

## `priceType` (type: `string`):

Whether the price range applies to the nightly price or to the total for the stay (fees included).

## `minBedrooms` (type: `integer`):

At least this many bedrooms.

## `maxBedrooms` (type: `integer`):

At most this many bedrooms (checked on each property; skipped ones are not charged).

## `minBathrooms` (type: `integer`):

At least this many bathrooms.

## `propertyTypes` (type: `array`):

Vrbo's property types. Several types are combined the way Vrbo's own filter combines them. Empty = all.

## `amenities` (type: `array`):

Vrbo's amenity filters. Empty = any.

## `locationTypes` (type: `array`):

Vrbo's location filters. Empty = any.

## `beachAccess` (type: `array`):

Vrbo's beach-access filter. Empty = any.

## `minRating` (type: `string`):

Vrbo's guest-rating filter (out of 10).

## `instantBookOnly` (type: `boolean`):

Only properties Vrbo books with Instant Confirmation. Every row carries instantConfirmation either way.

## `premierHostOnly` (type: `boolean`):

Only properties whose host has Vrbo's Premier Host badge.

## `freeCancellation` (type: `string`):

Vrbo's free-cancellation filter.

## `availableOnly` (type: `boolean`):

Vrbo's "only show available properties" filter.

## `maxResults` (type: `integer`):

Properties per destination / search link (0 = all Vrbo shows, up to about 400 per search). In monitor mode it is the number of top search positions watched.

## `includeDetails` (type: `boolean`):

Adds the description, every amenity by group, rooms and beds, bathroom count with half baths, the full photo gallery, review category scores and histogram, and the cancellation timeline. Included in the property price.

## `includeCalendar` (type: `boolean`):

Adds each property's day-by-day availability with Vrbo's nightly price and minimum stay, plus occupancy (30/90/365 days), ADR, RevPAR, estimated annual revenue, first available date and minimum stay. Charged as an add-on per property.

## `calendarDays` (type: `integer`):

How many days from today the calendar covers (Vrbo publishes about 750).

## `currency` (type: `string`):

vrbo.com prices in US dollars only; AUD and NZD come from Vrbo's own Australian and New Zealand sites, which list the same properties.

## `includeReviews` (type: `boolean`):

Also delivers each property's guest reviews (rating, text, date, stay, travel type, liked aspects, helpful votes, owner reply), charged per review.

## `maxReviewsPerProperty` (type: `integer`):

0 = every review.

## `reviewsSort` (type: `string`):

Vrbo's own review sort.

## `reviewsSince` (type: `string`):

Only reviews written on or after this date (YYYY-MM-DD, or how far back, e.g. "90 days").

## `monitorMode` (type: `boolean`):

For scheduled runs: delivers (and charges) only properties that are new in the watched search positions or whose price changed since the last run, and only reviews newer than the ones already delivered.

## `monitorKey` (type: `string`):

Keeps separate schedules apart (one memory per name).

## `proxyConfiguration` (type: `object`):

Leave as is: the actor connects directly and switches to Apify RESIDENTIAL (US) by itself when Vrbo refuses the connection (Vrbo refuses datacenter proxies). Your own proxy URLs, if given, are tried first.

## Actor input object example

```json
{
  "locations": [
    "Gatlinburg, Tennessee"
  ],
  "adults": 2,
  "pets": false,
  "sortBy": "RECOMMENDED",
  "priceType": "nightly",
  "minRating": "any",
  "instantBookOnly": false,
  "premierHostOnly": false,
  "freeCancellation": "any",
  "availableOnly": false,
  "maxResults": 10,
  "includeDetails": true,
  "includeCalendar": false,
  "calendarDays": 365,
  "currency": "USD",
  "includeReviews": false,
  "maxReviewsPerProperty": 20,
  "reviewsSort": "newest",
  "monitorMode": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

One item per property (price for your dates, beds, baths, sleeps, rating, host, house rules, cancellation, coordinates, amenities, photos) and, with reviews on, one item per review.

## `summary` (type: `string`):

Per-search totals, resolved destinations, filters applied, reviews read per property, inputs not matched and connection stats.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "locations": [
        "Gatlinburg, Tennessee"
    ],
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapersdelight/vrbo-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "locations": ["Gatlinburg, Tennessee"],
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapersdelight/vrbo-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "locations": [
    "Gatlinburg, Tennessee"
  ],
  "maxResults": 10
}' |
apify call scrapersdelight/vrbo-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapersdelight/vrbo-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/CuviVVbFEVx8BqUP6/builds/RAO8nF9kWHhLqTX70/openapi.json
