Vrbo APIvrbo.com ↗
Search Vrbo vacation rentals by location, dates, and guest count. Retrieve property details including amenities, bedrooms, and descriptions via two endpoints.
What is the Vrbo API?
The Vrbo API provides access to vacation rental data across two endpoints: search_listings and get_property_details. A search returns up to paginated results per query including per-night pricing, property IDs, thumbnails, and listing URLs. The detail endpoint exposes 9 structured fields per property — name, location, bedroom and bathroom counts, sleep capacity, amenities list, description, and a primary image URL.
curl -X GET 'https://api.parse.bot/scraper/c00a1872-7f9d-45ba-bde6-4cf81a483fa6/search_listings?page=1&query=Miami&adults=2&checkin=2026-07-21&checkout=2026-07-28' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace vrbo-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.vrbo_scraper_api import Vrbo, Listing, ListingDetail
vrbo = Vrbo()
# Search for vacation rentals in Miami
for listing in vrbo.listings.search(query="Miami", adults=2, limit=5):
print(listing.title, listing.price_per_night, listing.location)
# Get full details for each listing
detail = listing.details()
print(detail.name, detail.bedrooms, detail.bathrooms, detail.sleeps)
Search for vacation rental listings by location. Returns properties with titles, prices, thumbnails, and listing URLs. Supports optional date filtering and guest count. Results are sorted by Vrbo's recommended algorithm. Each page returns up to ~50 listings.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| queryrequired | string | Location to search for (e.g., 'Miami', 'New York', 'Los Angeles') |
| adults | integer | Number of adult guests |
| checkin | string | Check-in date in YYYY-MM-DD format |
| checkout | string | Check-out date in YYYY-MM-DD format |
{
"type": "object",
"fields": {
"page": "integer - current page number",
"query": "string - the search location",
"adults": "integer - number of adult guests",
"checkin": "string or null - check-in date if provided",
"results": "array of listing objects with title, property_id, expedia_property_id, location, price_per_night, thumbnail, and url",
"checkout": "string or null - check-out date if provided",
"results_count": "integer - number of results returned"
},
"sample": {
"data": {
"page": 1,
"query": "Miami",
"adults": 2,
"checkin": null,
"results": [
{
"url": "https://www.vrbo.com/4425323",
"title": "Luxury Brickell Studio ✨ Ocean Views + Rooftop Pool + Gym",
"location": "Within Downtown Miami",
"thumbnail": "https://media.vrbo.com/lodging/113000000/112940000/112930200/112930147/b60f7d61.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"property_id": "4425323",
"price_per_night": "$302",
"expedia_property_id": "112930147"
}
],
"checkout": null,
"results_count": 50
},
"status": "success"
}
}About the Vrbo API
Search Listings
The search_listings endpoint accepts a required query string (e.g. 'Miami' or 'New York') and optional parameters for checkin, checkout, adults, and page. When date parameters are supplied, returned prices reflect availability-based nightly rates. Each result object in the results array includes title, property_id, expedia_property_id, location, price_per_night, thumbnail, and url. The results_count field tells you how many listings came back for the current page, and page tracks your position in the paginated result set.
Property Details
The get_property_details endpoint takes a property_id — the numeric string found in results[*].property_id from a search response — and returns a single property record. Fields include name, description, location, sleeps, bedrooms, bathrooms, amenities (an array of strings), image, url, and property_id. Integer fields such as sleeps, bedrooms, and bathrooms can be null if the source listing does not publish that data.
Data Coverage Notes
Pricing in search results reflects Vrbo's listed nightly rate; the detail endpoint does not return a separate price field. The amenities array surfaces whatever the host has listed on the property page and may vary widely in granularity between listings. Guest reviews, availability calendars, and host contact information are not included in either endpoint's response.
The Vrbo API is a managed, monitored endpoint for vrbo.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when vrbo.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official vrbo.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a vacation rental comparison tool using
price_per_night,bedrooms, andsleepsacross multiple properties - Populate a travel app's search results page with property thumbnails, titles, and URLs from
search_listings - Filter rentals by guest count using the
adultsparameter before surfacing listings to end users - Aggregate amenities data across properties in a destination to identify which features are standard vs. rare
- Cross-reference
expedia_property_idwith Expedia-side data for multi-platform rental research - Build a property detail page using
description,image,location, and structured specs fromget_property_details
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Vrbo have an official public developer API?+
What does `get_property_details` return beyond what search results include?+
title, price_per_night, thumbnail, location, and url. The detail endpoint adds description, amenities (as an array), sleeps, bedrooms, bathrooms, and a full-resolution image URL — fields the search results do not expose.Does the API return guest reviews or ratings for properties?+
Can I retrieve availability calendars or multi-night total pricing?+
search_listings endpoint returns a price_per_night value when dates are provided, but there is no endpoint for full availability calendars or stay-level total price breakdowns. You can fork this API on Parse and revise it to add an availability or pricing-detail endpoint.How does pagination work in `search_listings`?+
page parameter to advance through result pages. The response echoes back the current page value alongside results_count so you can track how many results were returned per page. There is no explicit total_results field, so you determine the last page by observing when results_count drops below the expected page size.