# Vrbo & Expedia Scraper - Vacation Rentals, Hotels & Reviews (`automly/vrbo-expedia-scraper`) Actor

Scrape Vrbo vacation rentals and Expedia hotels by destination and dates: nightly and total prices, ratings, bedrooms, sleeps, photos, map position, full amenities, house rules, check-in times, cancellation terms, descriptions and guest reviews. 18 country editions.

- **URL**: https://apify.com/automly/vrbo-expedia-scraper.md
- **Developed by:** [Automly](https://apify.com/automly) (community)
- **Categories:** Travel
- **Stats:** 1 total users, 1 monthly users, 94.2% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.55 / 1,000 rental or hotel listings

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Vrbo & Expedia Scraper - Rentals, Hotels, Prices & Reviews

### What is Vrbo & Expedia Scraper?

**Vrbo & Expedia Scraper** is a tool that lets you **scrape vacation rentals from Vrbo and hotels from Expedia**: the nightly price and the stay's total for your dates, taxes and fees as shown, guest rating and review count, bedrooms, bathrooms, beds and guests, photos, map position, badges, and on request the **full property page** (description, every amenity, house rules, check-in and check-out times, cancellation terms, the host business) or the **guest reviews**. Type a destination and your dates, click **Start**, and download the results as Excel, CSV or JSON.

- ⚡ **Fast:** about 2,000 listings from two destinations on both sites in under 3 minutes, 600 reviews in 15 seconds (our tests)
- 🏖️ **Two sites in one run:** Vrbo vacation homes and Expedia hotels and rentals side by side, each row marked with its site
- 🔍 **Whole destinations:** a large destination is read to the end, not just the first pages the site shows
- 🌍 **18 country editions:** prices in USD, GBP, EUR, CAD, AUD, NZD, INR, SGD, JPY or MXN
- 🔓 **No login:** no Vrbo or Expedia account needed

### What can Vrbo & Expedia Scraper do?

- **Scrape Vrbo search results** for any destination and dates, like `Destin, Florida` or `Gatlinburg, TN`
- **Scrape Expedia hotel search results** with nightly and total prices, star ratings and guest ratings
- **Compare Vrbo and Expedia prices** for the same destination and dates in one dataset
- **Filter like on the site:** price per night, bedrooms, property type, amenities, guest rating, hotel stars, sort order
- **Get full property details**: description, all amenities by category, house rules, pets and children policies, check-in and check-out times, cancellation terms, address and map position, the full photo gallery
- **Scrape Vrbo reviews and Expedia hotel reviews**: rating, text, date, stay month, traveler type and the property's response
- **Paste property links** from vrbo.com or expedia.com to get one property's details or reviews
- Export to Excel, CSV, JSON, HTML or XML, or send the data to Google Sheets, Make, Zapier and more

### What data can you extract from Vrbo and Expedia?

| | | |
|---|---|---|
| 🏠 Name, type, link and ID | 💵 Price per night and total | 🧾 Taxes and fees note |
| 🏷️ Price before discount and deals | ⭐ Guest rating and reviews count | 🏨 Hotel star rating |
| 🛏️ Bedrooms, bathrooms, beds, sleeps | 📍 Latitude and longitude | 🖼️ Photos |
| 📝 Full description | 🧰 Every amenity by category | 📜 House rules and policies |
| 🕓 Check-in and check-out times | ↩️ Cancellation terms | 🏢 Host business (property managers) |
| 💬 Review text, rating and title | 📅 Review date and stay month | 👪 Traveler type and the property's response |

### How to scrape Vrbo and Expedia

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open **Vrbo & Expedia Scraper**.
3. Choose **What to scrape** (search results, property details or reviews) and the **Site** (Vrbo, Expedia or both).
4. Enter one or more destinations and your check-in and check-out dates, or paste property links. Add filters if you like.
5. Click **Start**, then download the results as Excel, CSV, JSON or HTML.

### ⬇️ Input

| Setting | What it does |
|---|---|
| **What to scrape** | Search results (one row per property), Property details (the same plus the full property page) or Reviews |
| **Site** | Vrbo, Expedia or both. With both, **Max results** is shared equally between the two sites |
| **Destinations** | Cities, regions or areas, as you would type them on the site (`Destin, Florida`, `Lake Tahoe`, `Paris`) |
| **Property links** | vrbo.com or expedia.com property pages (or property IDs), for details or reviews of those properties |
| **Check-in / Check-out** | Your dates. Leave them empty for a 3-night stay starting 30 days from today |
| **Adults / Children's ages** | The guests, as on the site |
| **Max results** | Rows to save in the whole run (default 100). Set 0 for everything the searches list |
| **Filters** | Price per night, minimum bedrooms, property types, amenities, minimum guest rating, hotel stars (Expedia), sort order |
| **Site edition** | The country site: it sets the currency and the language of texts |
| **Reviews order / Max reviews per property** | Newest, most relevant, highest or lowest rated first; and a limit per property |

Vrbo vacation rentals in Destin for a long weekend, 4+ bedrooms with a pool:

```json
{
  "dataType": "listings",
  "site": "vrbo",
  "destinations": ["Destin, Florida"],
  "checkIn": "2026-11-12",
  "checkOut": "2026-11-15",
  "adults": 6,
  "minBedrooms": 4,
  "amenities": ["pool"],
  "maxResults": 200
}
```

Full details of Expedia hotels rated 8+ in Paris, cheapest first:

```json
{
  "dataType": "details",
  "site": "expedia",
  "destinations": ["Paris"],
  "propertyTypes": ["hotel"],
  "minRating": "8",
  "sortBy": "price_low",
  "maxResults": 50
}
```

The 100 newest reviews of two properties:

```json
{
  "dataType": "reviews",
  "startUrls": [
    "https://www.vrbo.com/969667",
    "https://www.expedia.com/Destin-Hotels-Village-Inn-Destin.h1724251.Hotel-Information"
  ],
  "maxReviewsPerProperty": 50,
  "maxResults": 100
}
```

### ⬆️ Output

A Vrbo search result:

```json
{
  "site": "vrbo",
  "id": "22129830",
  "listingId": "408863",
  "url": "https://www.vrbo.com/408863?chkin=2026-11-12&chkout=2026-11-15&startDate=2026-11-12&endDate=2026-11-15&adults=2&expediaPropertyId=22129830",
  "name": "St. Maarten 1408- 3bd Beach Resort resort condo!",
  "propertyType": "Condo",
  "bedrooms": 3,
  "beds": 4,
  "summaryLines": ["Condo · 3 bedrooms · 4 beds"],
  "highlights": ["14 min walk to the beach"],
  "latitude": 30.384611,
  "longitude": -86.456062,
  "rating": 9.4,
  "ratingText": "Exceptional",
  "reviewCount": 67,
  "pricePerNight": 381,
  "priceTotal": 1144,
  "priceBeforeDiscount": null,
  "taxesAndFeesIncluded": true,
  "priceNote": "All fees included",
  "priceText": ["$381", "$1,144 for 3 nights", "All fees included"],
  "currency": "USD",
  "badges": ["Premier Host"],
  "images": ["https://media.vrbo.com/lodging/23000000/22130000/22129900/22129830/4e0a651b.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455"],
  "destination": "Destin, Florida, United States of America",
  "checkIn": "2026-11-12",
  "checkOut": "2026-11-15",
  "nights": 3,
  "adults": 2,
  "children": 0,
  "source": "Destin, Florida",
  "scrapedAt": "2026-10-03T01:15:20Z"
}
```

With **Property details**, the same row also has:

```json
{
  "description": "Introducing the newest exclusive beachfront retreat at The Inn at Crystal Beach Penthouse 702...",
  "address": "Destin, FL",
  "city": "Destin",
  "region": "FL",
  "countryCode": "USA",
  "bathrooms": 4,
  "sleeps": 12,
  "spaceLines": ["4 bedrooms", "4 bathrooms", "Sleeps 12"],
  "amenitiesFull": [{"category": "Kitchen", "items": ["Kitchen", "Refrigerator", "Dishwasher", "Microwave", "Grill"]}],
  "houseRules": [{"title": "Pets", "lines": ["No pets allowed"]}, {"title": "Events", "lines": ["No events allowed"]}],
  "checkInTime": "5:00 PM",
  "checkOutTime": "10:00 AM",
  "cancellationPolicy": ["If you cancel your reservation before Oct 13 at 11:59pm you'll get a refund of 50% of the amount payable (minus the service fee).", "After that, you won't get a refund."],
  "hostName": "Holiday Isle Properties"
}
```

A review:

```json
{
  "site": "expedia",
  "propertyId": "1724251",
  "propertyName": "Village Inn Destin",
  "reviewId": "6abae757b1711d662e10252a",
  "rating": 8,
  "ratingText": "Good",
  "title": null,
  "text": "We come down to fish should have something prepared for breakfast so people going fishing would be able to have something earlier",
  "reviewerName": "David",
  "submittedAt": "2026-09-28T22:16:55Z",
  "publishedDate": "2026-10-02",
  "stayDate": "2026-09",
  "stayNights": 3,
  "travelerType": "Traveled with group",
  "liked": ["Liked: staff & service", "Disliked: amenities"],
  "responseText": null,
  "responseDate": null
}
```

The **Overview** tab lists every row, and the **Listings**, **Property details** and **Reviews** tabs show each kind as its own table. The run report lists any destination or property that does not exist.

### Which fields come with which choice?

| Field | Search results | Property details | Reviews |
|---|---|---|---|
| Name, link, type, rooms, rating, photos, map position | ✅ | ✅ | property name and link |
| Price per night and total for your dates | ✅ | ✅ (from a search) | |
| Description, all amenities, house rules, check-in times | | ✅ | |
| Cancellation terms, host business | | ✅ (vacation rentals) | |
| Review text, rating, dates, traveler type, response | | | ✅ |

Prices are exactly as the site shows them for your dates and guests. Vrbo shows the nightly price with the stay's total including fees; Expedia shows the stay's total with taxes and fees and an average nightly price. Words such as "2 bedrooms" or "Stayed 3 nights in Jul 2026" are turned into numbers on the English-language editions; on other editions those numbers stay empty and the original lines are kept.

### How can I use Vrbo and Expedia data?

- **Vacation rental market research:** nightly rates, sizes and ratings of every rental in a destination
- **Pricing for hosts and property managers:** compare your listing with similar homes for the same dates
- **Hotel rate monitoring:** follow Expedia prices for a city over the season
- **Vrbo vs Expedia price comparison** for the same destination and dates
- **Short-term rental investment:** find areas with high nightly rates and strong reviews
- **Review analysis:** what guests praise and complain about, and how properties respond

### How many results can I get?

Every property the site lists as available for your dates and filters. Large destinations are read to the end, beyond the pages the site shows at once. Reviews are read to the last one. A property that appears twice is saved once.

### ❓FAQ

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

You pay per row saved: per search result, per property with full details, and per review. See the **Pricing** tab for the current prices. **Max results** keeps the cost of a run under control, and you can also set a maximum cost per run.

#### Do I need dates?

No. Without dates the scraper searches a 3-night stay starting 30 days from today. Prices and availability always depend on the dates and guests you choose.

#### Can I scrape Vrbo calendar availability?

The search returns the properties available for your dates. Run the same destination with other dates to compare availability and prices across the season.

#### Can I get the host's phone number or email?

No. The scraper collects only what the site shows publicly. The host's name is included only when the host is a business, such as a rental company or property manager.

#### What happens with a wrong destination or a removed property?

The run goes on with the other inputs, and the run report lists the destinations and properties that do not exist.

#### Can I call it as an API?

Yes. Run it through the Apify API from any language, or use its real-time endpoints `/search?destination=...&checkIn=...&checkOut=...&site=vrbo`, `/property?url=...` and `/reviews?url=...` that answer with the rows directly.

#### Do you have scrapers for Airbnb and Booking.com?

Yes: [Airbnb Listings Scraper](https://apify.com/automly/airbnb-listings-scraper) and [Booking.com Scraper](https://apify.com/automly/booking-scraper) give the same kind of data for those sites.

#### Is it legal to scrape Vrbo and Expedia?

This scraper collects publicly available information about properties, prices and reviews. Make sure your use follows applicable laws and the sites' terms, and do not collect personal data you have no legitimate reason to use; reviews come with the reviewer's public display name only. This tool is not affiliated with or endorsed by Vrbo or Expedia.

#### Something is not working, or I need another field

Open an issue in the **Issues** tab with your input and what you expected. We read every one and usually reply within a day. If the scraper saves you time, a short review on its page helps other people find it, and we would be grateful for it.

# Actor input Schema

## `dataType` (type: `string`):

Search results: one row per property found, with prices for your dates. Property details: the search results (or property links) with the full description, all amenities, house rules, check-in and check-out times, cancellation terms and the host business. Reviews: guest reviews of the properties found or linked.

## `site` (type: `string`):

Vrbo lists vacation homes, Expedia hotels plus many rentals. Both: each destination is searched on both sites and Max results is shared equally between them.

## `destinations` (type: `array`):

Cities, regions or areas, one per line, as you would type them on the site ("Destin, Florida", "Lake Tahoe", "Paris").

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

Vrbo or Expedia property pages (vrbo.com/969667, expedia.com/...h1724251.Hotel-Information) or property IDs, for Property details or Reviews.

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

Arrival date. Leave empty for 30 days from today.

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

Departure date. Leave empty for a 3-night stay.

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

Adults staying.

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

One age per child (0 to 17), like 4 and 9.

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

How many rows to save in the whole run, across all destinations, links and sites. Set 0 for everything the searches list.

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

In the site edition's currency.

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

In the site edition's currency.

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

At least this many bedrooms (Expedia's choices stop at 4+).

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

Only these kinds of property. Motel, B\&B, inn, hostel, aparthotel and townhouse exist on Expedia only.

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

Properties with all of these. Private pool and dishwasher are Vrbo filters; gym, spa, restaurant and airport shuttle Expedia ones.

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

Guest rating out of 10.

## `starRatings` (type: `array`):

Only hotels with these star ratings.

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

Order of the search results.

## `country` (type: `string`):

The country site to read: it sets the prices' currency and the language of texts. Vrbo has the United States, Australia and Germany editions.

## `reviewsSortBy` (type: `string`):

For Reviews.

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

For Reviews: at most this many per property. 0 = all of them (up to Max results).

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

The default works for most runs. If results come back empty, try a different proxy option.

## Actor input object example

```json
{
  "dataType": "listings",
  "site": "vrbo",
  "destinations": [
    "Destin, Florida"
  ],
  "adults": 2,
  "maxResults": 20,
  "minRating": "any",
  "sortBy": "recommended",
  "country": "US",
  "reviewsSortBy": "newest",
  "maxReviewsPerProperty": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `listings` (type: `string`):

No description

## `details` (type: `string`):

No description

## `reviews` (type: `string`):

No description

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

No description

## `report` (type: `string`):

No description

# 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 = {
    "destinations": [
        "Destin, Florida"
    ],
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/vrbo-expedia-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 = {
    "destinations": ["Destin, Florida"],
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("automly/vrbo-expedia-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 '{
  "destinations": [
    "Destin, Florida"
  ],
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call automly/vrbo-expedia-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automly/vrbo-expedia-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/s915tr0Up9H3rjR1l/builds/1ZHKUIyPw2HvzWLh6/openapi.json
