VRBO Listing Scraper
Pricing
from $2.00 / 1,000 vrbo listings
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
Maintained by CommunityActor stats
0
Bookmarked
11
Total users
3
Monthly active users
8 days ago
Last modified
Categories
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
| Field | Description |
|---|---|
propertyId | The numeric id from the Vrbo URL |
url | Canonical listing URL |
title | Listing headline |
description | The host's "About this property" text |
propertyType | Apartment, Villa, Condo, House, Cabin … |
bedrooms, bathrooms, maxGuests | Capacity, as Vrbo states it on the listing |
latitude, longitude | Coordinates |
city, stateProvince, country | Location |
overallRating | Guest rating, normalised to a 0–5 scale |
reviewCount | Number of guest reviews |
amenities | The amenities Vrbo highlights on the page (typically 6–12) |
amenityCategories | The same amenities grouped under Vrbo's own heading |
photoUrls, photoCount | Up to 60 full-size photo URLs |
hostName | Host's display name |
scrapedAt | ISO timestamp of the scrape |
Returned when you supply dates
| Field | Description |
|---|---|
pricePerNight | Nightly rate for the checkIn/checkOut window |
currency | Currency 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®ionId=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
maxListingsto 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.
| Run | Listings | Actor cost |
|---|---|---|
| Quick check | 10 | $0.02 |
| Competitive set | 100 | $0.20 |
| Destination scan | 1,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
| Volume | Recommendation |
|---|---|
| Under ~25 listings | No proxy is usually fine |
| 25–200 listings | Apify Datacenter Proxy |
| 200+ listings | Apify 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,successRateand afailureReasonstally.
If your run ends green, the data is there.
Tips
- Start with
maxListings: 10and confirm the fields you need are populated before scaling. - Always pass
checkInandcheckOutif you care about price — there is no price without dates. - Pin your proxy country when comparing runs over time; Vrbo varies by visitor location.
- 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.
- Lower
requestsPerSecond(to 0.5, say) before reaching for anything else if you start seeingbot-wallin 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.
Legal & Terms of Service
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.
Related Actors
- 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.