# Vacasa Scraper - Rental Prices, Reviews and Availability (`recordsdata/vacasa-scraper`) Actor

Scrape vacasa.com vacation rentals: nightly rates, priced stays with fees, specs, photos, guest reviews, availability calendars and property managers for 40,000 homes in the USA, Mexico, Costa Rica, Belize, Aruba and Canada. No login, no proxy.

- **URL**: https://apify.com/recordsdata/vacasa-scraper.md
- **Developed by:** [RecordsData](https://apify.com/recordsdata) (community)
- **Categories:** Travel, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 vacation rental (search card)s

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

![RecordsData](https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3)

## 🏖️ Vacasa Scraper - Vacation Rental Prices, Reviews and Availability - RecordsData

> 🚀 **Export Vacasa vacation rentals in minutes.** Search any city, region, state or country on vacasa.com, price a stay for exact dates with all fees, read the full unit page, collect guest reviews, pull the booking calendar of every home, list the local property manager offices and get unit counts and price statistics per destination. No login, no browser, no proxy.

**Vacasa Scraper is an Apify Actor that collects public data from vacasa.com, the vacation rental manager with about 40,000 homes in the USA, Mexico, Costa Rica, Belize, Aruba and Canada: cabins, beach houses, ski condos, lake homes, villas and city apartments.** A unit row carries about 70 fields, and a 3-unit cloud run takes 5 to 15 seconds, because the Actor sends about one request per second as the site asks.

**Quick answer:** pay per result, from $20.00 per 1,000 vacation rentals (search card) to $35.00 per 1,000 with the full unit page. Reviews cost $25.00 per 1,000, calendars $30.00, property manager offices $20.00 and destination statistics $30.00. Free plans return up to 10 items per run. Last updated: 2026-10-11.

| 🎯 Target audience | 💡 Primary use cases |
|---|---|
| Vacation rental owners and managers | Competitor nightly rates, occupancy and amenity benchmarks by destination |
| Revenue and pricing analysts | Dated stay quotes with cleaning and service fees, seasonality from calendars |
| Travel startups and meta-search teams | A clean feed of homes with photos, coordinates, rules and ratings |
| Investors and appraisers | Short-term rental yield inputs, supply counts by housing type and bedroom count |
| Researchers and data teams | Guest sentiment, review scores by category, tourism supply studies |

### 📋 What the Vacasa Scraper does

The Actor reads the same public pages and data feeds the Vacasa website uses for every visitor, so rows match what a guest sees and no browser is needed. Five modes cover the site.

- **units**: one row per vacation rental. Search by place, housing type, amenities, bedrooms, bathrooms, guests, pets, price range and rating, or give unit numbers and addresses. With check-in and check-out dates every row is the priced stay for those dates, with rent, fees and total, and only homes that are free for the stay are returned.
- **reviews**: one row per guest review with the overall score, the cleanliness, condition and service scores, the recommend score, the review text and the response from the property manager. Reviewer names are never collected.
- **availability**: one row per unit with a summary of its booking calendar (bookable days, next free date, average, lowest and highest nightly rate, month by month) and, if you want, the full day-by-day calendar with check-in and check-out flags and nightly rates.
- **managers**: one row per local property manager office with its address, rating, unit count and the list of its unit numbers.
- **places**: one row per destination (state, region or city) with unit count, price statistics, average bedrooms and rating, and the number of homes per housing type and per amenity.

### 📊 Output

Every row has a `recordType` (`unit`, `unit-detail`, `review`, `availability`, `manager` or `place`). Fields without a value are left out, never filled with `null`. Column order is fixed: image first, identity and price next, then stay quote, location, specs, rules, amenities, rating, text, media, property manager, and `scrapedAt` last.

| Field | Type | Example |
|---|---|---|
| `recordType` | string | `unit-detail` |
| `unitId`, `url`, `title` | string | `1015068` |
| `price`, `priceLow`, `priceHigh` | number (USD) | `639` |
| `stayRent`, `stayFees`, `stayTotal` | number (USD) | with dates only |
| `city`, `region`, `latitude`, `longitude` | string, number | `Sunriver` |
| `bedrooms`, `bathrooms`, `maxGuests` | number | `4` |
| `petsAllowed`, `checkInTime`, `licenseNumber` | boolean, string | `16:00:00` |
| `amenities`, `images` | array | `["Fireplace"]` |
| `rating`, `reviewCount` | number | `5`, `27` |
| `agencyName`, `agencyAddress` | string | property manager office |
| `ratingCleanliness`, `reviewText`, `ownerResponse` | number, string | review rows |
| `bookableDays`, `nextAvailableDate`, `avgNightlyRate` | number, date | availability rows |
| `unitCount`, `medianPrice`, `housingTypeCounts` | number, object | place and manager rows |

Sample row from a real run (long text and lists shortened):

```json
{
  "imageUrl": "https://images.casago.com/unit-images/pal/1015068/69a963cd0e4e330035058e6e.jpg",
  "recordType": "unit-detail",
  "title": "Comfortable home with SHARC passes, private hot tub, balcony, & pickleball",
  "unitId": "1015068",
  "url": "https://www.vacasa.com/unit/1015068",
  "country": "US",
  "operation": "short-term-rent",
  "propertyType": "house",
  "price": 639,
  "priceUnit": "night",
  "priceLow": 328,
  "priceHigh": 1891,
  "currency": "USD",
  "city": "Sunriver",
  "region": "Oregon",
  "latitude": 43.894587,
  "longitude": -121.442673,
  "bedrooms": 4,
  "bathrooms": 3.5,
  "beds": 7,
  "maxGuests": 10,
  "petsAllowed": false,
  "checkInTime": "16:00:00",
  "licenseNumber": "DCCA 695186",
  "amenities": [
    "Air conditioning",
    "Fireplace"
  ],
  "rating": 5,
  "reviewCount": 27,
  "images": [
    "https://images.casago.com/unit-images/pal/1015068/69a963cd0e4e330035058e6e.jpg"
  ],
  "imageCount": 50,
  "agencyName": "Oregon Avari",
  "scrapedAt": "2026-10-11T11:52:04.521Z"
}
```

### ✨ Why choose this Actor

- **Six record types in one Actor.** Units, detailed units, reviews, availability calendars, property manager offices and destination statistics.
- **Priced stays, not only a rate.** With check-in and check-out dates each row shows rent, fees, total and cancellation terms. Homes booked for those dates are left out.
- **Goes past the 300 homes per search limit.** The Actor splits big places by bedrooms, housing type and inner cities, so a whole state or country can be read.
- **Monitor mode.** Receive only new homes or homes whose nightly price changed, with the previous price and the change in percent.
- **Privacy by design.** Reviewer names and private persons are never returned. Manager phone and email stay off until you turn them on.
- **Light and polite.** No browser, no proxy, 256 MB, at most one request per second as the robots.txt Crawl-delay asks.

### 📈 How it compares to alternatives

| | RecordsData Vacasa Scraper | Vacasa Rental Scraper | Vacasa Reviews Scraper |
|---|---|---|---|
| Price | $20.00 to $35.00 per 1,000 rows | Free | From $2.00 per 1,000 reviews plus start fee |
| Rental data | About 70 fields, rates, specs, rules | URL, title, coordinates, rating, manager | None |
| Stay quotes, calendars | Yes, with fees | Not shown on its page | Not shown on its page |
| Reviews | Scores, text, manager reply, no names | Aggregate rating only | Scores, text, reply, reviewer first name |

Read on 2026-10-11 from the public Apify Store pages. The free rental scraper needs unit URLs and lists a handful of fields, so it suits a quick coordinate list. On price we are now the most expensive of the three: the free scraper costs nothing and the reviews scraper starts at $2.00 per 1,000 reviews, against $25.00 per 1,000 reviews here. The reviews scraper also has a cutoff date and sort options that ours lacks. Ours is the one to pick only if you need rates, priced stays, calendars, whole states and monitoring in one place.

### 💵 Pricing and cost examples

Pay per event, one event per row delivered. Nothing skipped or errored is charged.

| Row type | Price per 1,000 |
|---|---|
| Vacation rental, search card | $20.00 |
| Vacation rental, full page | $35.00 |
| Guest review | $25.00 |
| Availability calendar | $30.00 |
| Property manager office | $20.00 |
| Destination statistics | $30.00 |

- 500 homes of a city as search cards: 500 x $0.02 = $10.00.
- The whole of Oregon (1,420 homes) with full pages: 1,420 x $0.035 = $49.70.
- 2,000 reviews of one market: 2,000 x $0.025 = $50.00.
- 100 booking calendars for a rate study: 100 x $0.03 = $3.00.

### ⚙️ Input

| Input | Meaning |
|---|---|
| `mode` | units, reviews, availability, managers or places |
| `places`, `startUrls`, `unitIds` | What to read: places, vacasa.com addresses or unit numbers |
| `housingTypes`, `amenities`, `minBedrooms`, `guests`, `petFriendly` | Filters |
| `minPrice`, `maxPrice`, `minRating` | Nightly price in USD and rating filters |
| `checkIn`, `checkOut` | Dates (up to 90 nights) for priced stays |
| `includeDetails` | Read the full unit page |
| `onlyNew`, `trackPriceChanges` | Monitor mode |
| `maxItems`, `maxSearchRequests` | Limits on rows and search calls |

### 🚀 How to use

1. Create a free account on [Apify Console](https://console.apify.com) (new accounts include free monthly credit).
2. Open **Vacasa Scraper - Vacation Rental Prices** and pick **What to collect**.
3. Add places such as `Bend, OR`, `Destin Florida`, `Costa Rica` or `usa/Hawaii/Kihei`, or paste vacasa.com unit pages and search addresses, or list unit numbers such as `1015907`.
4. Add filters if you want them (housing types, amenities, bedrooms, guests, pets, price range, dates) and set **Maximum items**. Free plans return up to 10 items per run.
5. Press **Start**, then download the dataset as CSV, Excel, JSON, XML or HTML, or read it through the API.

Example: pet friendly homes with a hot tub in Bend, Oregon, priced for a 4-night stay in December:

```json
{
  "mode": "units",
  "places": ["Bend, OR"],
  "amenities": ["HotTub"],
  "petFriendly": true,
  "checkIn": "2026-12-10",
  "checkOut": "2026-12-14",
  "maxItems": 100
}
```

Example: the 20 newest guest reviews of one unit:

```json
{
  "mode": "reviews",
  "unitIds": ["1015907"],
  "maxReviewsPerUnit": 20,
  "maxItems": 20
}
```

### 💼 Who uses it

- **Revenue managers and owners:** track nightly rates and priced stays of competing homes by bedroom count, amenity and season.
- **Travel and meta-search teams:** feed a comparison site with homes, coordinates, photos, rules and ratings.
- **Investors and appraisers:** count homes per housing type and read average and median nightly rates before buying.
- **Researchers:** study guest sentiment with category scores, or compare tourism supply across six countries.

Schedule runs in Apify Console and send results to Make, Zapier, n8n, Google Sheets, Slack or Airbyte, or start your own pipeline with a webhook. The Apify API, Python and JavaScript clients and curl start runs and read datasets.

### ⚖️ Limits and legal

The site stops a search at 300 homes, which the Actor works around by slicing. It is paced at one request per second, so very large scans take hours. Prices are in US dollars, and only public data is read. The terms of use of vacasa.com restrict automated access, so check your own use against them and against data protection law.

### 🤖 Use it with AI agents (MCP)

Connect Apify to Claude, ChatGPT or any MCP client through the Apify MCP server, add this Actor, and the agent can call it as a tool.

**Example agent prompt:** "Use the Vacasa Scraper in units mode to get 30 pet friendly homes with a hot tub in Big Bear Lake, priced for 4 nights from 10 December, and list the five cheapest totals."

**Tool description (what the agent sees):** Scrape public vacation rental data from vacasa.com. Input: mode (units, reviews, availability, managers, places), places or unitIds, optional filters (housingTypes, amenities, bedrooms, guests, petFriendly, price range, checkIn and checkOut) and maxItems. Output: typed rows in the dataset, with price in USD.

### Frequently Asked Questions

#### 🏠 What data can I scrape from Vacasa?

Homes (rates, specs, location, house rules, amenities, photos, rating, property manager), guest reviews, availability calendars, property manager offices and destination statistics. The data comes from vacasa.com pages and the data feeds its own search uses, and covers the USA, Mexico, Costa Rica, Belize, Aruba and Canada. All prices are in US dollars.

#### 🔎 How do I scrape the homes of one city, region or state?

Type the place in **Places** the way you would say it, for example `Bend, OR`, `Destin Florida`, `Tamarindo` or `Costa Rica`, or use a path such as `usa/Oregon/Bend`. You can also paste a vacasa.com place page or search address. A place the Actor cannot find returns one free error row with a hint instead of a different place.

#### 🔢 How many homes can one search return?

Vacasa stops at 300 homes per search. The Actor splits bigger places into slices, so Oregon (1,420 homes) comes back complete in about 105 search calls, 2 to 5 minutes. The whole site (about 40,000 homes) needs about 3,000 search calls, in practice 1 to 2 hours. The default cap is 400 search calls per run, which you can raise in **Maximum search requests**. If the cap is reached before a place is complete, the log says so.

#### ⏱️ How fast does it run?

The Actor honours the Crawl-delay of 1 second in the robots.txt of vacasa.com: requests start at most once per second, and no setting can make it faster. A 3-home run finishes in 5 to 15 seconds. Full pages of 100 homes take about 2 minutes and 1,000 homes about 17 minutes, because each home needs one page request.

#### 📍 Why do I get homes from the next town?

The site treats neighbouring towns as one search area, so a search for San Jose del Cabo also lists Cabo San Lucas. Each row has its own `city` and `placeUrl`. Turn on **Only units inside the place** to keep only homes whose own city lies inside the place you asked for.

#### 💵 What does the price field mean?

Without dates, `price` is the average nightly rate on the search card, with the lowest and highest rate in `priceLow` and `priceHigh`. With check-in and check-out dates, `price` is the average nightly rent of your stay, and `stayRent`, `stayFees` and `stayTotal` give the exact amounts for the whole stay. Homes that cannot be booked for those dates are skipped.

#### ⭐ Are reviewer names included?

No. Review rows carry the date, the overall, cleanliness, condition and service scores, the recommend score, the review text and the response from the property manager, never the name of the guest. Private persons are not collected in any mode, and contact data of the manager office stays off unless you turn it on.

#### 🔁 How do I get only new homes or price changes?

Turn on **Only new records** and run the same search on a schedule. The first run delivers everything, later runs only homes not seen before. Add **Also report price changes** to get a home again when its nightly price differs, with `previousPrice`, `priceChange`, `priceChangePct` and `changeType`. Nothing skipped is charged.

#### 🆓 What do free plans get?

Free plans return up to 10 items per run. Paid plans return as many as you set in **Maximum items**. Results export as CSV, Excel, JSON, XML, RSS or HTML through Apify Console, the API or any integration.

#### ⚖️ Is it legal to scrape Vacasa?

The Actor collects only public data that vacasa.com serves to every visitor, honours its Crawl-delay, leaves out guest names and private persons, and keeps contact data off by default. The site's terms of use restrict automated access, so you are responsible for your own use of the data, including those terms and data protection law such as the GDPR. If your use case needs a license, ask the site owner.

### 🔗 Recommended Actors

- [RecordsData collection](https://apify.com/RecordsData): other real estate and public data scrapers by the same team.

> 💡 **Pro Tip:** browse the complete [RecordsData collection](https://apify.com/RecordsData) to combine Vacasa with other property markets.

**🆘 Need help?** Write to <contact.punkrecordsdata@gmail.com> or open an issue in the Issues tab.

> **⚠️ Disclaimer:** This is an independent tool and is not affiliated with, endorsed by or sponsored by Vacasa or Casago. Vacasa is a trademark of its owner. It collects only publicly available data.

# Actor input Schema

## `mode` (type: `string`):

units = one row per vacation rental (rates, specs, photos, rules, rating, property manager). reviews = one row per guest review. availability = one row per unit with its booking calendar summary. managers = one row per property manager office with its units. places = one row per destination (state, region, city) with unit counts and price statistics.

## `maxItems` (type: `integer`):

Stops after this many rows (all record types together). Free plans are limited to 10 items per run. In managers mode the scan of a place is kept in proportion to this number, so a small value gives office rows with partial unit counts (sampleIsComplete is false).

## `places` (type: `array`):

Cities, regions, states or countries, one per line: a city with its state such as "Bend, OR" or "Destin Florida", a country such as "Costa Rica", a path such as usa/Oregon/Bend or costa-rica/Guanacaste, or a vacasa.com place address. Leave empty to read whole countries (see Countries).

## `countries` (type: `array`):

Whole countries to read when no places or addresses are given. Empty with nothing else given means all six countries, starting with the USA. A country with more than 300 units is walked state by state.

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

vacasa.com unit pages (/unit/112665), place pages (/usa/Oregon/Bend/ or an explore page) and search addresses (/search?place=...). The filters in a search address are applied; filters set below override them.

## `unitIds` (type: `array`):

Single units by number or address, one per line, for example 112665 or https://www.vacasa.com/unit/112665. Works in units, reviews and availability modes.

## `housingTypes` (type: `array`):

Only these kinds of home. Empty means all.

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

Units that have all of the chosen amenities (hot tub and pool means both). Empty means no requirement.

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

At least this many bedrooms. Empty or 0 means any (studios included).

## `maxBedrooms` (type: `integer`):

At most this many bedrooms. Empty means no limit.

## `minBathrooms` (type: `integer`):

At least this many bathrooms. Empty or 0 means any.

## `guests` (type: `integer`):

Only units that sleep at least this many adults.

## `petFriendly` (type: `boolean`):

Only units that accept pets.

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

Keep units whose nightly rate is at least this (the average rate shown on the search card, or the average rate of your stay dates). Leave empty for no minimum.

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

Keep units whose nightly rate is at most this. Leave empty for no maximum.

## `minRating` (type: `number`):

Keep units rated at least this on the 0 to 5 scale. Units without reviews are left out when this is set.

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

First night as YYYY-MM-DD. With both dates the search returns only units that are free for the stay and each row carries the priced stay: rent, fees and total. Leave both empty for the general nightly rate.

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

Departure day as YYYY-MM-DD, after the check-in date and at most 90 nights later.

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

Order of the units inside a place. With a small maxItems it decides which units you get.

## `onlyInsidePlace` (type: `boolean`):

vacasa.com treats neighbouring towns as one search area (a search for San Jose del Cabo also lists Cabo San Lucas). On keeps only the units whose own city lies inside the place you asked for. Off returns exactly what the site shows for that place.

## `includeDetails` (type: `boolean`):

Units mode. On: one extra request per unit for the full description, all photos, amenity groups, bed layout and permit number (unit-detail record). Off: only the search-card data (unit record), faster and cheaper.

## `includeContactDetails` (type: `boolean`):

Adds the business phone and email of the local property manager office (never private persons). Turn on only if you have a lawful reason to process contact data.

## `includeRaw` (type: `boolean`):

Adds a raw field with the unmapped data of the search card (units) or review (reviews). Reviewer names are never included.

## `maxReviewsPerUnit` (type: `integer`):

Reviews mode: newest reviews to read per unit. The overall maximum items still applies.

## `calendarDays` (type: `integer`):

Availability mode: how many days from today the summary covers (the site publishes up to about two years).

## `includeDailyCalendar` (type: `boolean`):

Availability mode: adds the full list of days with bookable flag, check-in and check-out flags, nightly rate and fees.

## `includeChildPlaces` (type: `boolean`):

Places mode: also return one row per child place (the states of a country, the cities of a state) in addition to the place itself.

## `onlyNew` (type: `boolean`):

Skips records delivered by an earlier run of the same search (units, reviews and managers). Nothing skipped is charged.

## `trackPriceChanges` (type: `boolean`):

With Only new records on in units mode: a unit seen before comes back when its nightly price differs from the last delivered price, with the previous price, the change and the change in percent.

## `stateKey` (type: `string`):

Optional label to keep several monitors with identical settings apart.

## `resetSeen` (type: `boolean`):

Clears the memory of this search before the run, so everything counts as new.

## `maxSearchRequests` (type: `integer`):

Cap on the search calls of one run. A search call returns up to 300 units, so 400 calls reach a few state sized areas. The Actor makes about one request per second, so 400 calls take about 7 minutes. Raise it to read very large areas completely.

## `maxConcurrency` (type: `integer`):

How many unit page, review or calendar requests wait for an answer at the same time. Requests still start at most once per second, so this only overlaps the waiting time.

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

Optional. Leave proxy off (the default): the site works without one. Turn it on only if requests start failing; the Apify proxy then uses US exit addresses, because vacasa.com refuses other countries.

## Actor input object example

```json
{
  "mode": "units",
  "maxItems": 10,
  "places": [
    "Bend, OR"
  ],
  "countries": [],
  "startUrls": [],
  "unitIds": [],
  "housingTypes": [],
  "amenities": [],
  "petFriendly": false,
  "checkIn": "",
  "checkOut": "",
  "sortBy": "recommended",
  "onlyInsidePlace": false,
  "includeDetails": true,
  "includeContactDetails": false,
  "includeRaw": false,
  "maxReviewsPerUnit": 20,
  "calendarDays": 365,
  "includeDailyCalendar": false,
  "includeChildPlaces": true,
  "onlyNew": false,
  "trackPriceChanges": false,
  "stateKey": "",
  "resetSeen": false,
  "maxSearchRequests": 400,
  "maxConcurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Key fields per row

## `fullData` (type: `string`):

Complete dataset with all fields

# 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 = {
    "maxItems": 10,
    "places": [
        "Bend, OR"
    ],
    "countries": [],
    "startUrls": [],
    "unitIds": [],
    "housingTypes": [],
    "amenities": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/vacasa-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 = {
    "maxItems": 10,
    "places": ["Bend, OR"],
    "countries": [],
    "startUrls": [],
    "unitIds": [],
    "housingTypes": [],
    "amenities": [],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/vacasa-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 '{
  "maxItems": 10,
  "places": [
    "Bend, OR"
  ],
  "countries": [],
  "startUrls": [],
  "unitIds": [],
  "housingTypes": [],
  "amenities": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call recordsdata/vacasa-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/vacasa-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/ZOLKOzrb0B2vVlXD4/builds/fUcSujQg5UaPLOeMh/openapi.json
