VRBO Listing Scraper avatar

VRBO Listing Scraper

Pricing

from $2.00 / 1,000 vrbo listings

Go to Apify Store
VRBO Listing Scraper

VRBO Listing Scraper

Scrape VRBO vacation rental listings with pricing, ratings, amenities, photos & host details. Search by location name, bounding box, search URL, or property ID. Returns 35+ fields per listing including cleaning fees, house rules & cancellation policy.

Pricing

from $2.00 / 1,000 vrbo listings

Rating

0.0

(0)

Developer

Luis Segura

Luis Segura

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

3

Monthly active users

8 days ago

Last modified

Share

Extract structured listing data from Vrbo.com — title, description, capacity, location, guest rating, amenities, photos and host — for any property, search or destination.

No Vrbo account required. No API key needed.


What You Get

One dataset item per property. Every field below is verified against live Vrbo pages, not aspirational.

Always returned

FieldDescription
propertyIdThe numeric id from the Vrbo URL
urlCanonical listing URL
titleListing headline
descriptionThe host's "About this property" text
propertyTypeApartment, Villa, Condo, House, Cabin …
bedrooms, bathrooms, maxGuestsCapacity, as Vrbo states it on the listing
latitude, longitudeCoordinates
city, stateProvince, countryLocation
overallRatingGuest rating, normalised to a 0–5 scale
reviewCountNumber of guest reviews
amenitiesThe amenities Vrbo highlights on the page (typically 6–12)
amenityCategoriesThe same amenities grouped under Vrbo's own heading
photoUrls, photoCountUp to 60 full-size photo URLs
hostNameHost's display name
scrapedAtISO timestamp of the scrape

Returned when you supply dates

FieldDescription
pricePerNightNightly rate for the checkIn/checkOut window
currencyCurrency of that rate

Vrbo shows no price at all on a dateless listing page — it displays "Add dates for prices". If you need pricing, always pass checkIn and checkOut.

Present in the schema, not currently populated

Vrbo loads these only after a human clicks "See more", so they are not available to a page-load scrape. They are kept in the output shape for schema stability and come back null:

beds · address · postalCode · cleaningFee · weeklyDiscount · monthlyDiscount · checkInTime · checkOutTime · cancellationPolicy · minNights · maxNights · petsAllowed · smokingAllowed · eventsAllowed · childrenAllowed · instantBooking · hostId · hostMemberSince · hostResponseRate · hostLanguages

The full amenity list behind Vrbo's "See all amenities" dialog is in the same category. If you need those fields, say so in an issue — they are reachable, but each one costs an extra interaction per listing, and that cost would land in your bill.


5 Ways to Use It

Mode A — specific properties by ID

{
"propertyIds": ["4932725", "9663643"],
"checkIn": "2026-11-20",
"checkOut": "2026-11-23"
}

Mode B — from listing URLs

{
"urls": [
"https://www.vrbo.com/4932725",
"https://www.vrbo.com/390515ha"
]
}

Mode C — from a search URL

Search on Vrbo, filter and zoom as you like, then paste the browser URL.

{
"searchUrl": "https://www.vrbo.com/search?destination=Punta%20Cana&regionId=601906",
"maxListings": 25
}

Mode D — by bounding box

{
"boundingBox": { "ne_lat": 25.85, "ne_lng": -80.11, "sw_lat": 25.75, "sw_lng": -80.15 },
"maxListings": 50
}

Mode E — by location name

{
"location": "Punta Cana, Dominican Republic",
"maxListings": 100
}

On the search modes (C, D, E): the actor collects the listings Vrbo renders on its results pages and pages through them. Vrbo caps and lazy-loads its own results, so a destination scan returns what the site is willing to show — not a guaranteed census of every listing in the area. Set maxListings to what you actually need, and prefer Mode A or B when you already know the properties.


Sample Output

{
"propertyId": "4932725",
"scrapedAt": "2026-09-11T16:24:08.117Z",
"details": {
"url": "https://www.vrbo.com/4932725",
"title": "Punta Cana Beach Luxury apartment 2 bedroom 4 minute walk to beach",
"description": "Make yourself at home in this fabulous 2-bedroom Punta Cana retreat 4 minute walk to beach. This apartment boasts comfort for long stays, 2 queen beds, 2 bathrooms with showers and hair dryer...",
"propertyType": "Apartment",
"bedrooms": 2,
"bathrooms": 2,
"maxGuests": 4,
"latitude": 18.68,
"longitude": -68.41,
"city": "Punta Cana",
"stateProvince": "La Altagracia",
"country": "DOM",
"overallRating": 5,
"reviewCount": 9,
"pricePerNight": 96,
"currency": "USD",
"hostName": "Robert",
"amenities": [
"Pool", "Kitchen", "Washer", "Dryer", "Air conditioning",
"Parking available", "Balcony", "Swimming pool", "Refrigerator", "Internet"
],
"amenityCategories": {
"Popular amenities": [
"Balcony", "Swimming pool", "Air conditioning",
"Refrigerator", "Washer", "Internet"
]
},
"photoCount": 31,
"photoUrls": [
"https://images.trvl-media.com/lodging/.../living-area.jpg",
"https://images.trvl-media.com/lodging/.../pool.jpg"
],
"beds": null,
"cleaningFee": null,
"cancellationPolicy": null,
"instantBooking": null
}
}

overallRating is normalised: Vrbo publishes ratings out of 10 (this property shows 10/10), and the actor converts to the 0–5 scale so the column is comparable with Airbnb data.


Use Cases

  • Short-term rental market research — supply, capacity mix and rating distribution for a destination
  • Competitive intelligence — what comparable listings offer, and how they are rated
  • Revenue management — pull comparable nightly rates for specific date windows
  • Investment analysis — evaluate a market's inventory before buying
  • Travel tech — power search, comparison and recommendation tools
  • Academic research — vacation-rental market structure and pricing

Pricing

Pay per result: $2.00 per 1,000 listings ($0.002 each), plus a small Actor-start event.

RunListingsActor cost
Quick check10$0.02
Competitive set100$0.20
Destination scan1,000$2.00

You are charged only for listings that actually return data. A run that extracts nothing returns nothing and costs nothing in result events.

Apify platform usage (compute and proxy) is billed separately to your account, as with any browser-based scraper. Each listing is one rendered page, so budget roughly 1–2 seconds and a few MB per listing, and use a residential proxy for anything beyond a small run.


Proxy Recommendations

VolumeRecommendation
Under ~25 listingsNo proxy is usually fine
25–200 listingsApify Datacenter Proxy
200+ listingsApify Residential Proxy (recommended)
{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Vrbo sits behind Akamai bot mitigation. The actor adapts its own rate — it backs off and refreshes its session when Vrbo pushes back, then speeds up again while requests succeed — but residential IPs are what keep a large run out of the bot wall.


When a Run Fails, It Says So

This actor does not report an empty dataset as a success.

  • A run that resolves no properties fails, and names the reason.
  • A run where every property fails fails, with a breakdown by cause (bot-wall, captcha, listing-unavailable, layout-changed, …).
  • A run under 50% success finishes, but logs a warning telling you what went wrong and what to change.
  • The first failing page is saved to the run's key-value store as failure-sample-1, so a Vrbo layout change is diagnosable from the run itself.
  • The run summary in the key-value store carries succeeded, failed, successRate and a failureReasons tally.

If your run ends green, the data is there.


Tips

  1. Start with maxListings: 10 and confirm the fields you need are populated before scaling.
  2. Always pass checkIn and checkOut if you care about price — there is no price without dates.
  3. Pin your proxy country when comparing runs over time; Vrbo varies by visitor location.
  4. Schedule it to build history: each run is a snapshot, and stacked over weeks the dataset becomes rating and inventory movement nobody sells off the shelf.
  5. Lower requestsPerSecond (to 0.5, say) before reaching for anything else if you start seeing bot-wall in the failure tally.

Limitations

  • No price without dates. Vrbo shows none on a dateless page.
  • Exact street address is not published. Vrbo hides it until booking; coordinates, city and region are always available.
  • Amenities are the highlighted set, not the exhaustive list — see the field table above.
  • Policies, fees and host profile are not returned today — they load behind a click on Vrbo's side.
  • Review text is not scraped — rating and count only.
  • Listings change constantly. Re-run for fresh data.

This actor reads publicly available information from Vrbo listing pages — the same content any visitor sees without logging in. It requires no authentication, bypasses no security measure, and collects no personal guest data.

You are responsible for how you use the output, including compliance with Vrbo's Terms of Service and the data-protection rules that apply where you operate.


  • Booking.com Availability & Rate Calendar Scraper — availability and nightly rates, date by date
  • Airbnb Listing Details, Host & Amenities Scraper — the same data model for Airbnb
  • Airbnb Calendar & Availability Scraper — occupancy and rate curves for Airbnb properties

Built by RentIQ — tools for short-term rental professionals.