{
  "openapi": "3.0.1",
  "info": {
    "title": "Vrbo Scraper - Vacation Rentals, Prices, Hosts & Reviews",
    "description": "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.",
    "version": "0.1",
    "x-build-id": "RAO8nF9kWHhLqTX70"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~vrbo-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-vrbo-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scrapersdelight~vrbo-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-vrbo-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scrapersdelight~vrbo-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-vrbo-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "locations": {
            "title": "📍 Destinations",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🔗 Vrbo listing links or numbers",
            "type": "array",
            "description": "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).",
            "items": {
              "type": "string"
            }
          },
          "regionIds": {
            "title": "Vrbo region ids",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string"
            }
          },
          "polygon": {
            "title": "Map polygon",
            "type": "array",
            "description": "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).",
            "items": {
              "type": "string"
            }
          },
          "checkIn": {
            "title": "Check-in",
            "type": "string",
            "description": "Check-in date (YYYY-MM-DD) or how far ahead (e.g. \"30 days\"). Empty = 30 days from today."
          },
          "checkOut": {
            "title": "Check-out",
            "type": "string",
            "description": "Check-out date (YYYY-MM-DD) or how long after check-in (e.g. \"7 days\"). Empty = 3 nights."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Number of adults. Vrbo only lists properties that sleep the whole party.",
            "default": 2
          },
          "childrenAges": {
            "title": "Children's ages",
            "type": "array",
            "description": "One age (0-17) per child, e.g. 4 and 9.",
            "items": {
              "type": "string"
            }
          },
          "pets": {
            "title": "Bringing pets",
            "type": "boolean",
            "description": "Only properties that allow pets (Vrbo's own pets filter).",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "RECOMMENDED",
              "PRICE_LOW_TO_HIGH",
              "PRICE_HIGH_TO_LOW",
              "REVIEW",
              "REVIEW_COUNT"
            ],
            "type": "string",
            "description": "Vrbo's own sort order.",
            "default": "RECOMMENDED"
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price (per night or for the whole stay, see Price type), in the search currency."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price (per night or for the whole stay, see Price type), in the search currency."
          },
          "priceType": {
            "title": "Price type",
            "enum": [
              "nightly",
              "total"
            ],
            "type": "string",
            "description": "Whether the price range applies to the nightly price or to the total for the stay (fees included).",
            "default": "nightly"
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "At least this many bedrooms."
          },
          "maxBedrooms": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "At most this many bedrooms (checked on each property; skipped ones are not charged)."
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "At least this many bathrooms."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Vrbo's property types. Several types are combined the way Vrbo's own filter combines them. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "house",
                "apartment_or_condo",
                "cabin",
                "villa",
                "cottage",
                "chalet",
                "lodge",
                "resort",
                "hotel",
                "guest_house",
                "estate",
                "castle",
                "boat",
                "houseboat",
                "RV"
              ],
              "enumTitles": [
                "House",
                "Apartment or condo",
                "Cabin",
                "Villa",
                "Cottage",
                "Chalet",
                "Lodge",
                "Resort",
                "Hotel",
                "Guest house",
                "Estate",
                "Castle",
                "Boat",
                "Houseboat",
                "RV"
              ]
            }
          },
          "amenities": {
            "title": "Amenities",
            "type": "array",
            "description": "Vrbo's amenity filters. Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "pool",
                "private_pool",
                "heated_pool",
                "hot_tub",
                "internet_available",
                "air_conditioning",
                "washer",
                "clothes_dryer",
                "parking",
                "electric_vehicle_charging_station",
                "outdoor_grill",
                "patio_or_deck",
                "balcony",
                "garden_or_backyard",
                "fireplace",
                "television",
                "dishwasher",
                "microwave",
                "stove",
                "oven",
                "iron_and_board",
                "crib",
                "kids_high_chair",
                "king_sized_bed",
                "bed_linens_provided"
              ],
              "enumTitles": [
                "Pool",
                "Private pool",
                "Heated pool",
                "Hot tub",
                "Internet or WiFi",
                "Air conditioning",
                "Washer",
                "Dryer",
                "Parking",
                "EV charging",
                "Grill",
                "Patio or deck",
                "Balcony",
                "Garden or backyard",
                "Fireplace",
                "TV",
                "Dishwasher",
                "Microwave",
                "Stove",
                "Oven",
                "Iron and board",
                "Crib",
                "Kids' high chair",
                "King-sized bed",
                "Bed linens provided"
              ]
            }
          },
          "locationTypes": {
            "title": "Location",
            "type": "array",
            "description": "Vrbo's location filters. Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "oceanfront",
                "waterfront",
                "lake_location",
                "mountains_location",
                "skiin_skiout",
                "golf_course",
                "downtown_location",
                "village_location",
                "rural_location"
              ],
              "enumTitles": [
                "Oceanfront",
                "Waterfront",
                "Lake",
                "Mountains",
                "Ski-in/ski-out",
                "Golf course",
                "Downtown",
                "Village",
                "Rural"
              ]
            }
          },
          "beachAccess": {
            "title": "Beach access",
            "type": "array",
            "description": "Vrbo's beach-access filter. Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "on_the_beach",
                "near_the_beach"
              ],
              "enumTitles": [
                "On the beach",
                "Near the beach"
              ]
            }
          },
          "minRating": {
            "title": "Minimum guest rating",
            "enum": [
              "any",
              "7",
              "8",
              "9"
            ],
            "type": "string",
            "description": "Vrbo's guest-rating filter (out of 10).",
            "default": "any"
          },
          "instantBookOnly": {
            "title": "Instant Confirmation only",
            "type": "boolean",
            "description": "Only properties Vrbo books with Instant Confirmation. Every row carries instantConfirmation either way.",
            "default": false
          },
          "premierHostOnly": {
            "title": "Premier Host only",
            "type": "boolean",
            "description": "Only properties whose host has Vrbo's Premier Host badge.",
            "default": false
          },
          "freeCancellation": {
            "title": "Free cancellation",
            "enum": [
              "any",
              "1",
              "5",
              "14",
              "30",
              "60"
            ],
            "type": "string",
            "description": "Vrbo's free-cancellation filter.",
            "default": "any"
          },
          "availableOnly": {
            "title": "Only available properties",
            "type": "boolean",
            "description": "Vrbo's \"only show available properties\" filter.",
            "default": false
          },
          "maxResults": {
            "title": "Max properties per search",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "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.",
            "default": 50
          },
          "includeDetails": {
            "title": "Property details",
            "type": "boolean",
            "description": "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.",
            "default": true
          },
          "includeCalendar": {
            "title": "Availability calendar (add-on)",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "calendarDays": {
            "title": "Calendar days",
            "minimum": 30,
            "maximum": 730,
            "type": "integer",
            "description": "How many days from today the calendar covers (Vrbo publishes about 750).",
            "default": 365
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "AUD",
              "NZD"
            ],
            "type": "string",
            "description": "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.",
            "default": "USD"
          },
          "includeReviews": {
            "title": "Include reviews",
            "type": "boolean",
            "description": "Also delivers each property's guest reviews (rating, text, date, stay, travel type, liked aspects, helpful votes, owner reply), charged per review.",
            "default": false
          },
          "maxReviewsPerProperty": {
            "title": "Max reviews per property",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "0 = every review.",
            "default": 20
          },
          "reviewsSort": {
            "title": "Review order",
            "enum": [
              "newest",
              "highest",
              "lowest"
            ],
            "type": "string",
            "description": "Vrbo's own review sort.",
            "default": "newest"
          },
          "reviewsSince": {
            "title": "Reviews since",
            "type": "string",
            "description": "Only reviews written on or after this date (YYYY-MM-DD, or how far back, e.g. \"90 days\")."
          },
          "monitorMode": {
            "title": "Monitor mode",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Keeps separate schedules apart (one memory per name)."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "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.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}